diff options
author | root <root> | 2009-07-10 00:36:21 +0000 |
---|---|---|
committer | root <root> | 2009-07-10 00:36:21 +0000 |
commit | fe7f056cfc2dc30ab33a1e36b0005fa1e39b0e50 (patch) | |
tree | e623ed6d8c81a89e07d3bde1f63c8b6d43c596a2 /ev_kqueue.c | |
parent | ce8dc1a03da38c405583d4673d8da12c2a26373e (diff) |
*** empty log message ***
Diffstat (limited to 'ev_kqueue.c')
-rw-r--r-- | ev_kqueue.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ev_kqueue.c b/ev_kqueue.c index 3a4824f..2a9832f 100644 --- a/ev_kqueue.c +++ b/ev_kqueue.c @@ -85,6 +85,8 @@ kqueue_poll (EV_P_ ev_tstamp timeout) int res, i; struct timespec ts; + EV_SUSPEND_CB; + /* need to resize so there is enough space for errors */ if (kqueue_changecnt > kqueue_eventmax) { @@ -93,13 +95,13 @@ kqueue_poll (EV_P_ ev_tstamp timeout) kqueue_events = (struct kevent *)ev_malloc (sizeof (struct kevent) * kqueue_eventmax); } - if (expect_false (suspend_cb)) suspend_cb (EV_A); ts.tv_sec = (time_t)timeout; ts.tv_nsec = (long)((timeout - (ev_tstamp)ts.tv_sec) * 1e9); res = kevent (backend_fd, kqueue_changes, kqueue_changecnt, kqueue_events, kqueue_eventmax, &ts); - if (expect_false (resume_cb)) resume_cb (EV_A); kqueue_changecnt = 0; + EV_RESUME_CB; + if (expect_false (res < 0)) { if (errno != EINTR) |