--- EV/EV.xs 2007/12/08 04:02:30 1.88 +++ EV/EV.xs 2007/12/08 14:12:04 1.89 @@ -406,6 +406,7 @@ evapi.stat_stop = ev_stat_stop; evapi.stat_stat = ev_stat_stat; evapi.clear_pending = ev_clear_pending; + evapi.invoke = ev_invoke; sv_setiv (sv, (IV)&evapi); SvREADONLY_on (sv); @@ -429,6 +430,17 @@ void ev_unloop (int how = 1) +void ev_feed_fd_event (int fd, int revents = EV_NONE) + +void ev_feed_signal_event (SV *signal) + CODE: +{ + Signal signum = sv_signum (signal); + CHECK_SIG (signal, signum); + + ev_feed_signal_event (EV_DEFAULT_ signum); +} + ev_io *io (SV *fh, int events, SV *cb) ALIAS: io_ns = 1 @@ -557,6 +569,12 @@ int ev_is_pending (ev_watcher *w) +void ev_invoke (ev_watcher *w, int revents = EV_NONE) + +int ev_clear_pending (ev_watcher *w) + +void ev_feed_event (ev_watcher *w, int revents = EV_NONE) + int keepalive (ev_watcher *w, int new_value = 0) CODE: { @@ -598,10 +616,6 @@ OUTPUT: RETVAL -void trigger (ev_watcher *w, int revents = EV_NONE) - CODE: - w->cb (w, revents); - int priority (ev_watcher *w, int new_priority = 0) CODE: {