diff options
-rw-r--r-- | ev.c | 18 | ||||
-rw-r--r-- | ev.h | 2 |
2 files changed, 9 insertions, 11 deletions
@@ -1534,22 +1534,20 @@ clear_pending (EV_P_ W w) } } -void -ev_clear_pending (EV_P_ void *w, int invoke) +int +ev_clear_pending (EV_P_ void *w) { W w_ = (W)w; int pending = w_->pending; - if (pending) - { - ANPENDING *p = pendings [ABSPRI (w_)] + pending - 1; + if (!pending) + return 0; - w_->pending = 0; - p->w = 0; + w_->pending = 0; + ANPENDING *p = pendings [ABSPRI (w_)] + pending - 1; + p->w = 0; - if (invoke) - EV_CB_INVOKE (w_, p->events); - } + return p->events; } void inline_size @@ -475,7 +475,7 @@ void ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revent void ev_feed_event (EV_P_ void *w, int revents); void ev_feed_fd_event (EV_P_ int fd, int revents); void ev_feed_signal_event (EV_P_ int signum); -void ev_clear_pending (EV_P_ void *w, int invoke); +int ev_clear_pending (EV_P_ void *w); void ev_io_start (EV_P_ ev_io *w); void ev_io_stop (EV_P_ ev_io *w); |