--- libev/ev.c 2007/12/08 03:53:36 1.166 +++ libev/ev.c 2007/12/08 04:02:31 1.167 @@ -1534,22 +1534,20 @@ } } -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