diff options
-rw-r--r-- | lib/pure/selectors.nim | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/pure/selectors.nim b/lib/pure/selectors.nim index b796dca7a..f17c6d317 100644 --- a/lib/pure/selectors.nim +++ b/lib/pure/selectors.nim @@ -146,7 +146,11 @@ elif defined(linux): ## on the ``fd``. result = @[] let evNum = epoll_wait(s.epollFD, addr s.events[0], 64.cint, timeout.cint) - if evNum < 0: raiseOSError(osLastError()) + if evNum < 0: + let err = osLastError() + if err.cint == EINTR: + return @[] + raiseOSError(osLastError()) if evNum == 0: return @[] for i in 0 .. <evNum: let fd = s.events[i].data.fd.SocketHandle |