summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root>2007-12-08 04:02:31 +0000
committerroot <root>2007-12-08 04:02:31 +0000
commit74ab025f4b269ca1365059e6e07834e452adfabc (patch)
tree200eea10eec1dac6c081b196922439a23b5f3f11
parent7c2c0ecea2a4196af25910beaaf0faa4468e8e52 (diff)
*** empty log message ***
-rw-r--r--ev.c18
-rw-r--r--ev.h2
2 files changed, 9 insertions, 11 deletions
diff --git a/ev.c b/ev.c
index 2001247..260787d 100644
--- a/ev.c
+++ b/ev.c
@@ -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
diff --git a/ev.h b/ev.h
index 97c2f90..e92d6da 100644
--- a/ev.h
+++ b/ev.h
@@ -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);