summaryrefslogtreecommitdiff
path: root/ev_epoll.c
diff options
context:
space:
mode:
authorroot <root>2011-06-04 05:25:02 +0000
committerroot <root>2011-06-04 05:25:02 +0000
commit436d5d174bfb936c4852a63eb03e0a3185f1502a (patch)
treec0f5297470af0fbe39b75963bad813f1f2a4fc3b /ev_epoll.c
parenta9e3edbbaef8f747345cbaabb111219272ed1a53 (diff)
*** empty log message ***
Diffstat (limited to 'ev_epoll.c')
-rw-r--r--ev_epoll.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ev_epoll.c b/ev_epoll.c
index 1b8a3e9..c8448da 100644
--- a/ev_epoll.c
+++ b/ev_epoll.c
@@ -144,11 +144,13 @@ epoll_poll (EV_P_ ev_tstamp timeout)
int i;
int eventcnt;
+ if (expect_false (epoll_epermcnt))
+ timeout = 0.;
+
/* 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,
- epoll_epermcnt ? 0 : ev_timeout_to_ms (timeout));
+ eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, timeout * 1e3);
EV_ACQUIRE_CB;
if (expect_false (eventcnt < 0))