--- libev/ev_epoll.c 2011/01/08 10:25:16 1.57 +++ libev/ev_epoll.c 2011/01/10 14:05:23 1.58 @@ -143,11 +143,12 @@ { int i; int eventcnt; - + /* epoll wait times cannot be larger than (LONG_MAX - 999UL) / HZ msecs, which is below */ /* the default libev max wait time, however. */ EV_RELEASE_CB; - eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, (int)ceil (timeout * 1000.)); + eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, + epoll_epermcnt ? 0 : (int)ceil (timeout * 1000.)); EV_ACQUIRE_CB; if (expect_false (eventcnt < 0))