summaryrefslogtreecommitdiff
path: root/Kernel/Net/LocalSocket.h
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2023-03-06 19:29:25 +0100
committerAndreas Kling <kling@serenityos.org>2023-03-07 00:30:12 +0100
commitd1371d66f79d7482b4fe1acd58803c0a5db734f4 (patch)
tree98ead3246508f60971ceebf8478f0f22ebb7d98c /Kernel/Net/LocalSocket.h
parent36b0ecfe9e28c00f12cde7add7330c4ec8cf3339 (diff)
downloadserenity-d1371d66f79d7482b4fe1acd58803c0a5db734f4.zip
Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription
This patch switches away from {Nonnull,}LockRefPtr to the non-locking smart pointers throughout the kernel. I've looked at the handful of places where these were being persisted and I don't see any race situations. Note that the process file descriptor table (Process::m_fds) was already guarded via MutexProtected.
Diffstat (limited to 'Kernel/Net/LocalSocket.h')
-rw-r--r--Kernel/Net/LocalSocket.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/Kernel/Net/LocalSocket.h b/Kernel/Net/LocalSocket.h
index 5bdfa512e9..7b7a34e528 100644
--- a/Kernel/Net/LocalSocket.h
+++ b/Kernel/Net/LocalSocket.h
@@ -15,8 +15,8 @@ namespace Kernel {
class OpenFileDescription;
struct SocketPair {
- NonnullLockRefPtr<OpenFileDescription> description0;
- NonnullLockRefPtr<OpenFileDescription> description1;
+ NonnullRefPtr<OpenFileDescription> description0;
+ NonnullRefPtr<OpenFileDescription> description1;
};
class LocalSocket final : public Socket {
@@ -26,9 +26,9 @@ public:
static ErrorOr<SocketPair> try_create_connected_pair(int type);
virtual ~LocalSocket() override;
- ErrorOr<void> sendfd(OpenFileDescription const& socket_description, NonnullLockRefPtr<OpenFileDescription> passing_description);
- ErrorOr<NonnullLockRefPtr<OpenFileDescription>> recvfd(OpenFileDescription const& socket_description);
- ErrorOr<Vector<NonnullLockRefPtr<OpenFileDescription>>> recvfds(OpenFileDescription const& socket_description, int n);
+ ErrorOr<void> sendfd(OpenFileDescription const& socket_description, NonnullRefPtr<OpenFileDescription> passing_description);
+ ErrorOr<NonnullRefPtr<OpenFileDescription>> recvfd(OpenFileDescription const& socket_description);
+ ErrorOr<Vector<NonnullRefPtr<OpenFileDescription>>> recvfds(OpenFileDescription const& socket_description, int n);
static void for_each(Function<void(LocalSocket const&)>);
static ErrorOr<void> try_for_each(Function<ErrorOr<void>(LocalSocket const&)>);
@@ -60,8 +60,8 @@ private:
bool has_attached_peer(OpenFileDescription const&) const;
DoubleBuffer* receive_buffer_for(OpenFileDescription&);
DoubleBuffer* send_buffer_for(OpenFileDescription&);
- Vector<NonnullLockRefPtr<OpenFileDescription>>& sendfd_queue_for(OpenFileDescription const&);
- Vector<NonnullLockRefPtr<OpenFileDescription>>& recvfd_queue_for(OpenFileDescription const&);
+ Vector<NonnullRefPtr<OpenFileDescription>>& sendfd_queue_for(OpenFileDescription const&);
+ Vector<NonnullRefPtr<OpenFileDescription>>& recvfd_queue_for(OpenFileDescription const&);
void set_connect_side_role(Role connect_side_role, bool force_evaluate_block_conditions = false)
{
@@ -101,8 +101,8 @@ private:
NonnullOwnPtr<DoubleBuffer> m_for_client;
NonnullOwnPtr<DoubleBuffer> m_for_server;
- Vector<NonnullLockRefPtr<OpenFileDescription>> m_fds_for_client;
- Vector<NonnullLockRefPtr<OpenFileDescription>> m_fds_for_server;
+ Vector<NonnullRefPtr<OpenFileDescription>> m_fds_for_client;
+ Vector<NonnullRefPtr<OpenFileDescription>> m_fds_for_server;
IntrusiveListNode<LocalSocket> m_list_node;