You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
net: a blocked Accept, Recv or Send on the host netdev does not return when the socket is closed #94
The host netdev uses blocking syscalls with SO_RCVTIMEO and SO_SNDTIMEO. A goroutine blocked in Accept, Recv or Send pins an OS thread and does not return when the socket is closed, so a graceful shutdown hangs instead of completing.
A deadline set while I/O is already in flight also has no effect until the next wakeup. net/http's abortPendingRead relies on that working, because it interrupts the server's background read by setting a past read deadline.
Non-blocking sockets with an epoll poller would fix both. PR #77 implements that.
Activity