diff options
author | gVisor bot <gvisor-bot@google.com> | 2019-10-29 18:38:23 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-10-29 18:38:23 +0000 |
commit | 2fa80a171608bb5172edb2d9dbbd17df47839aae (patch) | |
tree | ca5e77431f28cbfb3765d3a053d72d728a859711 /pkg/tcpip/transport/tcp | |
parent | 862aefb66429be48e5910f72c8e1bc3b6b78e6f4 (diff) | |
parent | 7d80e85835fbe47b2395eedf287cf902ed78599a (diff) |
Merge release-20190806.1-337-g7d80e85 (automated)
Diffstat (limited to 'pkg/tcpip/transport/tcp')
-rw-r--r-- | pkg/tcpip/transport/tcp/endpoint.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/pkg/tcpip/transport/tcp/endpoint.go b/pkg/tcpip/transport/tcp/endpoint.go index 8234a8b53..ce8307cee 100644 --- a/pkg/tcpip/transport/tcp/endpoint.go +++ b/pkg/tcpip/transport/tcp/endpoint.go @@ -2399,6 +2399,22 @@ func (e *endpoint) Stats() tcpip.EndpointStats { return &e.stats } +// Wait implements stack.TransportEndpoint.Wait. +func (e *endpoint) Wait() { + waitEntry, notifyCh := waiter.NewChannelEntry(nil) + e.waiterQueue.EventRegister(&waitEntry, waiter.EventHUp) + defer e.waiterQueue.EventUnregister(&waitEntry) + for { + e.mu.Lock() + running := e.workerRunning + e.mu.Unlock() + if !running { + break + } + <-notifyCh + } +} + func mssForRoute(r *stack.Route) uint16 { // TODO(b/143359391): Respect TCP Min and Max size. return uint16(r.MTU() - header.TCPMinimumSize) |