From 9965e59ad8313cdbd758c06099c5e83cf241b15a Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 25 Dec 2021 11:23:57 +0100 Subject: [PATCH] Kernel: Remove unnecessary SocketHandle class This was used to return a pre-locked UDPSocket in one place, but there was really no need for that mechanism in the first place since the caller ends up locking the socket anyway. --- Kernel/Net/Socket.h | 38 -------------------------------------- Kernel/Net/UDPSocket.cpp | 9 +++------ Kernel/Net/UDPSocket.h | 2 +- 3 files changed, 4 insertions(+), 45 deletions(-) diff --git a/Kernel/Net/Socket.h b/Kernel/Net/Socket.h index 3c1d6c261c..72a159c843 100644 --- a/Kernel/Net/Socket.h +++ b/Kernel/Net/Socket.h @@ -183,44 +183,6 @@ private: NonnullRefPtrVector m_pending; }; -template -class SocketHandle { -public: - SocketHandle() = default; - - SocketHandle(NonnullRefPtr&& socket) - : m_socket(move(socket)) - { - if (m_socket) - m_socket->mutex().lock(); - } - - SocketHandle(SocketHandle&& other) - : m_socket(move(other.m_socket)) - { - } - - ~SocketHandle() - { - if (m_socket) - m_socket->mutex().unlock(); - } - - SocketHandle(const SocketHandle&) = delete; - SocketHandle& operator=(const SocketHandle&) = delete; - - operator bool() const { return m_socket; } - - SocketType* operator->() { return &socket(); } - const SocketType* operator->() const { return &socket(); } - - SocketType& socket() { return *m_socket; } - const SocketType& socket() const { return *m_socket; } - -private: - RefPtr m_socket; -}; - // This is a special variant of TRY() that also updates the socket's SO_ERROR field on error. #define SOCKET_TRY(expression) \ ({ \ diff --git a/Kernel/Net/UDPSocket.cpp b/Kernel/Net/UDPSocket.cpp index 691cc5dd49..75a93c0de7 100644 --- a/Kernel/Net/UDPSocket.cpp +++ b/Kernel/Net/UDPSocket.cpp @@ -29,16 +29,13 @@ MutexProtected>& UDPSocket::sockets_by_port() return *s_map; } -SocketHandle UDPSocket::from_port(u16 port) +RefPtr UDPSocket::from_port(u16 port) { - return sockets_by_port().with_shared([&](const auto& table) -> SocketHandle { - RefPtr socket; + return sockets_by_port().with_shared([&](const auto& table) -> RefPtr { auto it = table.find(port); if (it == table.end()) return {}; - socket = (*it).value; - VERIFY(socket); - return { *socket }; + return (*it).value; }); } diff --git a/Kernel/Net/UDPSocket.h b/Kernel/Net/UDPSocket.h index 0678c207be..2e1dcd0496 100644 --- a/Kernel/Net/UDPSocket.h +++ b/Kernel/Net/UDPSocket.h @@ -17,7 +17,7 @@ public: static ErrorOr> try_create(int protocol, NonnullOwnPtr receive_buffer); virtual ~UDPSocket() override; - static SocketHandle from_port(u16); + static RefPtr from_port(u16); static void for_each(Function); private: