diff options
author | Zhaozhong Ni <nzz@google.com> | 2018-07-17 10:13:57 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-07-17 10:15:00 -0700 |
commit | beb89bb75749620969b0e1dea65240bf5d4324b2 (patch) | |
tree | 68d97bd27e40bdf4f927d0dd0f0dfebe859197bd /pkg/tcpip/link | |
parent | 29e00c943a61dfcfd4ac8d3f6f526eab641c44a6 (diff) |
netstack: update goroutine save / restore safety comments.
PiperOrigin-RevId: 204930314
Change-Id: Ifc4c41ed28616cd57fafbf7c92e87141a945c41f
Diffstat (limited to 'pkg/tcpip/link')
-rw-r--r-- | pkg/tcpip/link/fdbased/endpoint.go | 5 | ||||
-rw-r--r-- | pkg/tcpip/link/sharedmem/sharedmem.go | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/pkg/tcpip/link/fdbased/endpoint.go b/pkg/tcpip/link/fdbased/endpoint.go index 413f77dcc..8fc009160 100644 --- a/pkg/tcpip/link/fdbased/endpoint.go +++ b/pkg/tcpip/link/fdbased/endpoint.go @@ -108,7 +108,10 @@ func New(opts *Options) tcpip.LinkEndpointID { // dispatches them via the provided dispatcher. func (e *endpoint) Attach(dispatcher stack.NetworkDispatcher) { e.attached = true - go e.dispatchLoop(dispatcher) // S/R-FIXME + // Link endpoints are not savable. When transportation endpoints are + // saved, they stop sending outgoing packets and all incoming packets + // are rejected. + go e.dispatchLoop(dispatcher) // S/R-SAFE: See above. } // IsAttached implements stack.LinkEndpoint.IsAttached. diff --git a/pkg/tcpip/link/sharedmem/sharedmem.go b/pkg/tcpip/link/sharedmem/sharedmem.go index 223eb3a1b..eabf35bd3 100644 --- a/pkg/tcpip/link/sharedmem/sharedmem.go +++ b/pkg/tcpip/link/sharedmem/sharedmem.go @@ -142,7 +142,10 @@ func (e *endpoint) Attach(dispatcher stack.NetworkDispatcher) { if !e.workerStarted && atomic.LoadUint32(&e.stopRequested) == 0 { e.workerStarted = true e.completed.Add(1) - go e.dispatchLoop(dispatcher) // S/R-FIXME + // Link endpoints are not savable. When transportation endpoints + // are saved, they stop sending outgoing packets and all + // incoming packets are rejected. + go e.dispatchLoop(dispatcher) // S/R-SAFE: see above. } e.mu.Unlock() } |