diff --git a/netpoll/netpoll_epoll.go b/netpoll/netpoll_epoll.go index 7f8a3b0..a548ad2 100644 --- a/netpoll/netpoll_epoll.go +++ b/netpoll/netpoll_epoll.go @@ -23,7 +23,7 @@ type poller struct { // Start implements Poller.Start() method. func (ep poller) Start(desc *Desc, cb CallbackFn) error { - return ep.Add(desc.fd(), toEpollEvent(desc.event), + err := ep.Add(desc.fd(), toEpollEvent(desc.event), func(ep EpollEvent) { var event Event @@ -49,6 +49,8 @@ func (ep poller) Start(desc *Desc, cb CallbackFn) error { cb(event) }, ) + setNonblock(desc.fd(), true) + return err } // Stop implements Poller.Stop() method. diff --git a/netpoll/netpoll_kqueue.go b/netpoll/netpoll_kqueue.go index d604eb0..c4b0fd1 100644 --- a/netpoll/netpoll_kqueue.go +++ b/netpoll/netpoll_kqueue.go @@ -22,7 +22,7 @@ type poller struct { func (p poller) Start(desc *Desc, cb CallbackFn) error { n, events := toKevents(desc.event, true) - return p.Add(desc.fd(), events, n, func(kev Kevent) { + err := p.Add(desc.fd(), events, n, func(kev Kevent) { var ( event Event @@ -57,6 +57,8 @@ func (p poller) Start(desc *Desc, cb CallbackFn) error { cb(event) }) + setNonblock(desc.fd(), true) + return err } func (p poller) Stop(desc *Desc) error {