diff options
author | Andreas Kling <kling@serenityos.org> | 2023-03-06 19:29:25 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2023-03-07 00:30:12 +0100 |
commit | d1371d66f79d7482b4fe1acd58803c0a5db734f4 (patch) | |
tree | 98ead3246508f60971ceebf8478f0f22ebb7d98c /Kernel/Net/LocalSocket.h | |
parent | 36b0ecfe9e28c00f12cde7add7330c4ec8cf3339 (diff) | |
download | serenity-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.h | 18 |
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; |