diff options
author | Bhasker Hariharan <bhaskerh@google.com> | 2021-06-22 23:38:37 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-06-22 23:41:29 -0700 |
commit | e5fe488b22734e798df760d9646c6b1c5f25c207 (patch) | |
tree | 8e3ae3c5a51cae94596e7a63921ccd4604e3b703 /pkg/tcpip/transport/tcp/endpoint.go | |
parent | 179ed309f4eaf424c078dba4688eef2731e6649c (diff) |
Wake up Writers when tcp socket is shutdown for writes.
PiperOrigin-RevId: 380967023
Diffstat (limited to 'pkg/tcpip/transport/tcp/endpoint.go')
-rw-r--r-- | pkg/tcpip/transport/tcp/endpoint.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pkg/tcpip/transport/tcp/endpoint.go b/pkg/tcpip/transport/tcp/endpoint.go index a27e2110b..242e6b7f8 100644 --- a/pkg/tcpip/transport/tcp/endpoint.go +++ b/pkg/tcpip/transport/tcp/endpoint.go @@ -2372,6 +2372,9 @@ func (e *endpoint) shutdownLocked(flags tcpip.ShutdownFlags) tcpip.Error { e.notifyProtocolGoroutine(notifyTickleWorker) return nil } + // Wake up any readers that maybe waiting for the stream to become + // readable. + e.waiterQueue.Notify(waiter.ReadableEvents) } // Close for write. @@ -2394,6 +2397,9 @@ func (e *endpoint) shutdownLocked(flags tcpip.ShutdownFlags) tcpip.Error { e.sndQueueInfo.SndClosed = true e.sndQueueInfo.sndQueueMu.Unlock() e.handleClose() + // Wake up any writers that maybe waiting for the stream to become + // writable. + e.waiterQueue.Notify(waiter.WritableEvents) } return nil |