diff options
-rw-r--r-- | pkg/fdnotifier/fdnotifier.go | 30 | ||||
-rw-r--r-- | pkg/fdnotifier/poll_unsafe.go | 25 |
2 files changed, 2 insertions, 53 deletions
diff --git a/pkg/fdnotifier/fdnotifier.go b/pkg/fdnotifier/fdnotifier.go index 731fa4dad..f0b028b0b 100644 --- a/pkg/fdnotifier/fdnotifier.go +++ b/pkg/fdnotifier/fdnotifier.go @@ -40,10 +40,6 @@ type notifier struct { // notifications. epFD int - // eventFD is used to restart epoll_wait in waitAndNotify after - // reconfiguring epFD. - eventFD int - // mu protects fdMap. mu sync.Mutex @@ -59,20 +55,9 @@ func newNotifier() (*notifier, error) { return nil, err } - eventFD, err := eventFDCreate() - if err != nil { - syscall.Close(epfd) - return nil, err - } - w := ¬ifier{ - epFD: epfd, - eventFD: eventFD, - fdMap: make(map[int32]*fdInfo), - } - - if err := w.waitFD(int32(w.eventFD), &fdInfo{}, waiter.EventIn); err != nil { - return nil, err + epFD: epfd, + fdMap: make(map[int32]*fdInfo), } go w.waitAndNotify() // S/R-SAFE: no waiter exists during save / load. @@ -106,11 +91,6 @@ func (n *notifier) waitFD(fd int32, fi *fdInfo, mask waiter.EventMask) error { } } - // Restart epoll_wait in waitAndNotify. - if err := eventFDWrite(n.eventFD, 1); err != nil { - return err - } - return nil } @@ -176,12 +156,6 @@ func (n *notifier) waitAndNotify() error { n.mu.Lock() for i := 0; i < v; i++ { - if e[i].Fd == int32(n.eventFD) { - if _, err := eventFDRead(n.eventFD); err != nil { - return err - } - continue - } if fi, ok := n.fdMap[e[i].Fd]; ok { fi.queue.Notify(waiter.EventMaskFromLinux(e[i].Events)) } diff --git a/pkg/fdnotifier/poll_unsafe.go b/pkg/fdnotifier/poll_unsafe.go index 882e9010d..bc5e0ac44 100644 --- a/pkg/fdnotifier/poll_unsafe.go +++ b/pkg/fdnotifier/poll_unsafe.go @@ -74,28 +74,3 @@ func epollWait(epfd int, events []syscall.EpollEvent, msec int) (int, error) { } return int(r), nil } - -func eventFDCreate() (int, error) { - eventFD, _, err := syscall.RawSyscall(syscall.SYS_EVENTFD2, 0, 0, 0) - if err != 0 { - return -1, err - } - return int(eventFD), nil -} - -func eventFDWrite(eventFD int, v uint64) error { - if _, _, err := syscall.RawSyscall(syscall.SYS_WRITE, uintptr(eventFD), uintptr(unsafe.Pointer(&v)), 8); err != 0 { - return err - } - - return nil -} - -func eventFDRead(eventFD int) (uint64, error) { - var v uint64 - if _, _, err := syscall.RawSyscall(syscall.SYS_READ, uintptr(eventFD), uintptr(unsafe.Pointer(&v)), 8); err != 0 { - return 0, err - } - - return v, nil -} |