summaryrefslogtreecommitdiff
path: root/ev_kqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'ev_kqueue.c')
-rw-r--r--ev_kqueue.c6
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)