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
On line 273 in pipe.go, makeConnectedServerPipe signals to the connectPipe goroutine that the listener has been closed by closing the underlying pipe it is trying to connect. However, if the connectPipe call succeeds before the call to p.Close(), then err may also be one of cERROR_PIPE_CONNECTED or cERROR_NO_DATA. This causes makeConnectedServerPipe to effectively swallow the control signal sent over l.closeCh, preventing listenerRoutine from accepting it, causing win32PipeListener.Close() to deadlock without ever closing the listener.
I have been able to reproduce this behavior while developing #84, but only by running go test in a loop until the deadlock occurs.
The text was updated successfully, but these errors were encountered:
On line 273 in
pipe.go
,makeConnectedServerPipe
signals to theconnectPipe
goroutine that the listener has been closed by closing the underlying pipe it is trying to connect. However, if theconnectPipe
call succeeds before the call top.Close()
, thenerr
may also be one ofcERROR_PIPE_CONNECTED
orcERROR_NO_DATA
. This causesmakeConnectedServerPipe
to effectively swallow the control signal sent overl.closeCh
, preventinglistenerRoutine
from accepting it, causingwin32PipeListener.Close()
to deadlock without ever closing the listener.I have been able to reproduce this behavior while developing #84, but only by running
go test
in a loop until the deadlock occurs.The text was updated successfully, but these errors were encountered: