diff options
Diffstat (limited to 'pkg/tcpip/transport/tcp')
-rw-r--r-- | pkg/tcpip/transport/tcp/connect.go | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/pkg/tcpip/transport/tcp/connect.go b/pkg/tcpip/transport/tcp/connect.go index efd69fa86..66904856c 100644 --- a/pkg/tcpip/transport/tcp/connect.go +++ b/pkg/tcpip/transport/tcp/connect.go @@ -819,7 +819,8 @@ func (e *endpoint) protocolMainLoop(passive bool) *tcpip.Error { defer func() { // e.mu is expected to be held upon entering this section. - e.waiterQueue.Notify(waiter.EventIn | waiter.EventOut) + // When the protocol loop exits we should wake up our waiters. + e.waiterQueue.Notify(waiter.EventHUp | waiter.EventErr | waiter.EventIn | waiter.EventOut) e.completeWorkerLocked() if e.snd != nil { @@ -880,9 +881,6 @@ func (e *endpoint) protocolMainLoop(passive bool) *tcpip.Error { e.waiterQueue.Notify(waiter.EventOut) - // When the protocol loop exits we should wake up our waiters with EventHUp. - defer e.waiterQueue.Notify(waiter.EventHUp) - // Set up the functions that will be called when the main protocol loop // wakes up. funcs := []struct { |