CVSROOT:        /cvs
Module name:    src
Changes by:     m...@cvs.openbsd.org    2024/12/30 05:12:35

Modified files:
        sys/kern       : uipc_socket.c uipc_socket2.c 
        sys/sys        : socketvar.h 

Log message:
The fixed version of previously reverted tcp(4) sockets unsplicing.

Rework sorele(), sofree() and soclose() to follow closef(), fdrop() and
FRELE() way. This version of sofree() never sleeps, but calls sorele()
after finished it's part of destruction. sorele() destroys socket if
the last reference was released.

As previously, timeout(9) and task(9) reinitialization was replaced by
barriers and moved to soclose(), so the only sleep points are common for
all socket types.

Tests and ok from bluhm.

Reply via email to