Bladeren bron

Kernel: Use RefPtr instead of SocketHandle for TCPSocket clients

Using a SocketHandle takes a lock on the socket, which we don't want
to do.
Conrad Pankoff 5 jaren geleden
bovenliggende
commit
d53c9d4416
2 gewijzigde bestanden met toevoegingen van 6 en 6 verwijderingen
  1. 3 3
      Kernel/Net/TCPSocket.cpp
  2. 3 3
      Kernel/Net/TCPSocket.h

+ 3 - 3
Kernel/Net/TCPSocket.cpp

@@ -37,7 +37,7 @@ Lockable<HashMap<IPv4SocketTuple, TCPSocket*>>& TCPSocket::sockets_by_tuple()
     return *s_map;
 }
 
-SocketHandle<TCPSocket> TCPSocket::from_tuple(const IPv4SocketTuple& tuple)
+RefPtr<TCPSocket> TCPSocket::from_tuple(const IPv4SocketTuple& tuple)
 {
     LOCKER(sockets_by_tuple().lock());
 
@@ -58,12 +58,12 @@ SocketHandle<TCPSocket> TCPSocket::from_tuple(const IPv4SocketTuple& tuple)
     return {};
 }
 
-SocketHandle<TCPSocket> TCPSocket::from_endpoints(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port)
+RefPtr<TCPSocket> TCPSocket::from_endpoints(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port)
 {
     return from_tuple(IPv4SocketTuple(local_address, local_port, peer_address, peer_port));
 }
 
-SocketHandle<TCPSocket> TCPSocket::create_client(const IPv4Address& new_local_address, u16 new_local_port, const IPv4Address& new_peer_address, u16 new_peer_port)
+RefPtr<TCPSocket> TCPSocket::create_client(const IPv4Address& new_local_address, u16 new_local_port, const IPv4Address& new_peer_address, u16 new_peer_port)
 {
     auto tuple = IPv4SocketTuple(new_local_address, new_local_port, new_peer_address, new_peer_port);
 

+ 3 - 3
Kernel/Net/TCPSocket.h

@@ -122,10 +122,10 @@ public:
     void record_incoming_data(int);
 
     static Lockable<HashMap<IPv4SocketTuple, TCPSocket*>>& sockets_by_tuple();
-    static SocketHandle<TCPSocket> from_tuple(const IPv4SocketTuple& tuple);
-    static SocketHandle<TCPSocket> from_endpoints(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port);
+    static RefPtr<TCPSocket> from_tuple(const IPv4SocketTuple& tuple);
+    static RefPtr<TCPSocket> from_endpoints(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port);
 
-    SocketHandle<TCPSocket> create_client(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port);
+    RefPtr<TCPSocket> create_client(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port);
 
 protected:
     void set_direction(Direction direction) { m_direction = direction; }