serenity/Kernel/Net
Brian Gianforcaro 4728f2af80 Kernel: Avoid unnecessary time under lock in TCPSocket::create
Avoid holding the sockets_by_tuple lock while allocating the TCPSocket.
While checking if the list contains the item we can also hold the lock
in shared mode, as we are only reading the hash table.

In addition the call to from_tuple appears to be superfluous, as we
created the socket, so we should be able to just return it directly.
This avoids the recursive lock acquisition, as well as the unnecessary
hash table lookups.
2021-05-14 11:32:50 +02:00
..
ARP.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
E1000NetworkAdapter.cpp Kernel: Make sure we read all packets 2021-05-01 20:08:08 +02:00
E1000NetworkAdapter.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
EthernetFrameHeader.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
EtherType.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ICMP.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
IPv4.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
IPv4Socket.cpp Kernel: Make UDPSocket::create() API OOM safe 2021-05-13 16:21:53 +02:00
IPv4Socket.h Kernel: Avoid allocating KBuffers for TCP packets 2021-05-12 13:47:07 +02:00
IPv4SocketTuple.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LocalSocket.cpp Kernel: Make LocalSocket factory APIs OOM safe 2021-05-13 16:21:53 +02:00
LocalSocket.h Kernel+LibC: Implement the socketpair() syscall 2021-04-28 14:19:45 +02:00
LoopbackAdapter.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LoopbackAdapter.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
NE2000NetworkAdapter.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
NE2000NetworkAdapter.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
NetworkAdapter.cpp Kernel: Avoid unnecessary allocations in NetworkAdapter::for_each 2021-05-13 08:27:42 +02:00
NetworkAdapter.h Kernel: Avoid unnecessary allocations in NetworkAdapter::for_each 2021-05-13 08:27:42 +02:00
NetworkTask.cpp Kernel: Outbound packets should use the source address from the socket 2021-05-12 16:31:29 +02:00
NetworkTask.h Kernel: Avoid deadlock when trying to send packets from the NetworkTask 2021-04-30 23:11:56 +02:00
Routing.cpp Kernel: Route packets destined for us through the loopback adapter 2021-05-12 16:31:29 +02:00
Routing.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTL8139NetworkAdapter.cpp AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
RTL8139NetworkAdapter.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Socket.cpp Kernel: Harden Socket Vector usage against OOM 2021-05-01 09:10:30 +02:00
Socket.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TCP.h Kernel: Set MSS option for outbound TCP SYN packets 2021-05-12 13:47:07 +02:00
TCPSocket.cpp Kernel: Avoid unnecessary time under lock in TCPSocket::create 2021-05-14 11:32:50 +02:00
TCPSocket.h Kernel: Remove dead TCPSocket::from_endpoints method 2021-05-14 11:32:50 +02:00
UDP.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UDPSocket.cpp Kernel: Make UDPSocket::create() API OOM safe 2021-05-13 16:21:53 +02:00
UDPSocket.h Kernel: Make UDPSocket::create() API OOM safe 2021-05-13 16:21:53 +02:00