summaryrefslogtreecommitdiff
path: root/ev.c
diff options
context:
space:
mode:
authorroot <root>2010-03-10 09:18:24 +0000
committerroot <root>2010-03-10 09:18:24 +0000
commitf8967b07fd26aa3c7e5f9f8becf81c72727659e2 (patch)
tree423304b94e177531a661713888a5929d1ebd0859 /ev.c
parent1e97f470d7efb51562242a32fa3145e02c19b030 (diff)
*** empty log message ***
Diffstat (limited to 'ev.c')
-rw-r--r--ev.c32
1 files changed, 27 insertions, 5 deletions
diff --git a/ev.c b/ev.c
index 2a66b60..85d0c47 100644
--- a/ev.c
+++ b/ev.c
@@ -893,7 +893,7 @@ queue_events (EV_P_ W *events, int eventcnt, int type)
/*****************************************************************************/
inline_speed void
-fd_event_nc (EV_P_ int fd, int revents)
+fd_event_nocheck (EV_P_ int fd, int revents)
{
ANFD *anfd = anfds + fd;
ev_io *w;
@@ -915,14 +915,14 @@ fd_event (EV_P_ int fd, int revents)
ANFD *anfd = anfds + fd;
if (expect_true (!anfd->reify))
- fd_event_nc (EV_A_ fd, revents);
+ fd_event_nocheck (EV_A_ fd, revents);
}
void
ev_feed_fd_event (EV_P_ int fd, int revents)
{
if (fd >= 0 && fd < anfdmax)
- fd_event_nc (EV_A_ fd, revents);
+ fd_event_nocheck (EV_A_ fd, revents);
}
/* make sure the external fd watch events are in-sync */
@@ -1800,9 +1800,11 @@ loop_fork (EV_P)
EV_WIN32_CLOSE_FD (evpipe [1]);
}
+#if EV_SIGNAL_ENABLE || EV_ASYNC_ENABLE
evpipe_init (EV_A);
/* now iterate over everything, in case we missed something */
pipecb (EV_A_ &pipe_w, EV_READ);
+#endif
}
postfork = 0;
@@ -1925,11 +1927,15 @@ ev_loop_verify (EV_P)
array_verify (EV_A_ (W *)asyncs, asynccnt);
#endif
+#if EV_PREPARE_ENABLE
assert (preparemax >= preparecnt);
array_verify (EV_A_ (W *)prepares, preparecnt);
+#endif
+#if EV_CHECK_ENABLE
assert (checkmax >= checkcnt);
array_verify (EV_A_ (W *)checks, checkcnt);
+#endif
# if 0
#if EV_CHILD_ENABLE
@@ -2306,12 +2312,14 @@ ev_loop (EV_P_ int flags)
}
#endif
+#if EV_PREPARE_ENABLE
/* queue prepare watchers (and execute them) */
if (expect_false (preparecnt))
{
queue_events (EV_A_ (W *)prepares, preparecnt, EV_PREPARE);
EV_INVOKE_PENDING;
}
+#endif
if (expect_false (loop_done))
break;
@@ -2394,9 +2402,11 @@ ev_loop (EV_P_ int flags)
idle_reify (EV_A);
#endif
+#if EV_CHECK_ENABLE
/* queue check watchers, to be executed first */
if (expect_false (checkcnt))
queue_events (EV_A_ (W *)checks, checkcnt, EV_CHECK);
+#endif
EV_INVOKE_PENDING;
}
@@ -3320,6 +3330,7 @@ ev_idle_stop (EV_P_ ev_idle *w)
}
#endif
+#if EV_PREPARE_ENABLE
void
ev_prepare_start (EV_P_ ev_prepare *w)
{
@@ -3355,7 +3366,9 @@ ev_prepare_stop (EV_P_ ev_prepare *w)
EV_FREQUENT_CHECK;
}
+#endif
+#if EV_CHECK_ENABLE
void
ev_check_start (EV_P_ ev_check *w)
{
@@ -3391,6 +3404,7 @@ ev_check_stop (EV_P_ ev_check *w)
EV_FREQUENT_CHECK;
}
+#endif
#if EV_EMBED_ENABLE
void noinline
@@ -3729,17 +3743,22 @@ ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w))
cb (EV_A_ EV_ASYNC, asyncs [i]);
#endif
+#if EV_PREPARE_ENABLE
if (types & EV_PREPARE)
for (i = preparecnt; i--; )
-#if EV_EMBED_ENABLE
+# if EV_EMBED_ENABLE
if (ev_cb (prepares [i]) != embed_prepare_cb)
-#endif
+# endif
cb (EV_A_ EV_PREPARE, prepares [i]);
+#endif
+#if EV_CHECK_ENABLE
if (types & EV_CHECK)
for (i = checkcnt; i--; )
cb (EV_A_ EV_CHECK, checks [i]);
+#endif
+#if EV_SIGNAL_ENABLE
if (types & EV_SIGNAL)
for (i = 0; i < EV_NSIG - 1; ++i)
for (wl = signals [i].head; wl; )
@@ -3748,7 +3767,9 @@ ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w))
cb (EV_A_ EV_SIGNAL, wl);
wl = wn;
}
+#endif
+#if EV_CHILD_ENABLE
if (types & EV_CHILD)
for (i = EV_PID_HASHSIZE; i--; )
for (wl = childs [i]; wl; )
@@ -3757,6 +3778,7 @@ ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w))
cb (EV_A_ EV_CHILD, wl);
wl = wn;
}
+#endif
/* EV_STAT 0x00001000 /* stat data changed */
/* EV_EMBED 0x00010000 /* embedded event loop needs sweep */
}