diff options
author | gVisor bot <gvisor-bot@google.com> | 2021-10-08 00:45:12 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-10-08 00:45:12 +0000 |
commit | 89e1ae16f75923312bf487fd96ab74ce0211df73 (patch) | |
tree | 8b1a7c1b20231f33ac76361d3634b70b4c89d8d2 /pkg/tcpip/link/sharedmem/server_rx.go | |
parent | fd0024109aac305a161145ce219f936a0b61a0de (diff) | |
parent | e44b100654ca639d11221e547384f699e461296d (diff) |
Merge release-20210927.0-50-ge44b10065 (automated)
Diffstat (limited to 'pkg/tcpip/link/sharedmem/server_rx.go')
-rw-r--r-- | pkg/tcpip/link/sharedmem/server_rx.go | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/pkg/tcpip/link/sharedmem/server_rx.go b/pkg/tcpip/link/sharedmem/server_rx.go index 2ad8bf650..6ea21ffd1 100644 --- a/pkg/tcpip/link/sharedmem/server_rx.go +++ b/pkg/tcpip/link/sharedmem/server_rx.go @@ -20,7 +20,7 @@ package sharedmem import ( "golang.org/x/sys/unix" "gvisor.dev/gvisor/pkg/cleanup" - "gvisor.dev/gvisor/pkg/tcpip/link/rawfile" + "gvisor.dev/gvisor/pkg/eventfd" "gvisor.dev/gvisor/pkg/tcpip/link/sharedmem/pipe" "gvisor.dev/gvisor/pkg/tcpip/link/sharedmem/queue" ) @@ -38,7 +38,7 @@ type serverRx struct { data []byte // eventFD is used to notify the peer when transmission is completed. - eventFD int + eventFD eventfd.Eventfd // sharedData the memory region to use to enable/disable notifications. sharedData []byte @@ -78,16 +78,11 @@ func (s *serverRx) init(c *QueueConfig) error { // Duplicate the eventFD so that caller can close it but we can still // use it. - efd, err := unix.Dup(c.EventFD) + efd, err := c.EventFD.Dup() if err != nil { return err } - cu.Add(func() { unix.Close(efd) }) - - // Set the eventfd as non-blocking. - if err := unix.SetNonblock(efd, true); err != nil { - return err - } + cu.Add(func() { efd.Close() }) s.packetPipe.Init(packetPipeMem) s.completionPipe.Init(completionPipeMem) @@ -104,7 +99,7 @@ func (s *serverRx) cleanup() { unix.Munmap(s.completionPipe.Bytes()) unix.Munmap(s.data) unix.Munmap(s.sharedData) - unix.Close(s.eventFD) + s.eventFD.Close() } // completionNotificationSize is size in bytes of a completion notification sent @@ -143,6 +138,5 @@ func (s *serverRx) receive() []byte { } func (s *serverRx) waitForPackets() { - var tmp [8]byte - rawfile.BlockingRead(s.eventFD, tmp[:]) + s.eventFD.Wait() } |