diff --git a/Kernel/Net/TCPSocket.cpp b/Kernel/Net/TCPSocket.cpp index f41cfa8812..393d4ac53f 100644 --- a/Kernel/Net/TCPSocket.cpp +++ b/Kernel/Net/TCPSocket.cpp @@ -471,8 +471,10 @@ KResult TCPSocket::close() set_state(State::LastAck); } - Locker locker(closing_sockets().lock()); - closing_sockets().resource().set(tuple(), *this); + if (state() != State::Closed && state() != State::Listen) { + Locker locker(closing_sockets().lock()); + closing_sockets().resource().set(tuple(), *this); + } return result; }