EV
view release on metacpan or search on metacpan
signal_ns = 1
CODE:
{
Signal signum = s_signum (signal);
CHECK_SIG (signal, signum);
RETVAL = e_new (sizeof (ev_signal), cb, default_loop_sv);
ev_signal_set (RETVAL, signum);
if (!ix) START_SIGNAL (RETVAL);
}
OUTPUT:
RETVAL
ev_idle *idle (SV *cb)
ALIAS:
idle_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_idle), cb, default_loop_sv);
ev_idle_set (RETVAL);
if (!ix) START (idle, RETVAL);
OUTPUT:
RETVAL
ev_prepare *prepare (SV *cb)
ALIAS:
prepare_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_prepare), cb, default_loop_sv);
ev_prepare_set (RETVAL);
if (!ix) START (prepare, RETVAL);
OUTPUT:
RETVAL
ev_check *check (SV *cb)
ALIAS:
check_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_check), cb, default_loop_sv);
ev_check_set (RETVAL);
if (!ix) START (check, RETVAL);
OUTPUT:
RETVAL
ev_fork *fork (SV *cb)
ALIAS:
fork_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_fork), cb, default_loop_sv);
ev_fork_set (RETVAL);
if (!ix) START (fork, RETVAL);
OUTPUT:
RETVAL
#if CLEANUP_ENABLED
ev_cleanup *cleanup (SV *cb)
ALIAS:
cleanup_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_cleanup), cb, default_loop_sv);
SvREFCNT_dec (RETVAL->loop); /* must not keep loop object alive */
ev_cleanup_set (RETVAL);
if (!ix) START (cleanup, RETVAL);
OUTPUT:
RETVAL
#endif
ev_child *child (int pid, int trace, SV *cb)
ALIAS:
child_ns = 1
CODE:
#if EV_CHILD_ENABLE
RETVAL = e_new (sizeof (ev_child), cb, default_loop_sv);
ev_child_set (RETVAL, pid, trace);
if (!ix) START (child, RETVAL);
#else
croak ("EV::child watchers not supported on this platform");
#endif
OUTPUT:
RETVAL
ev_stat *stat (SV *path, NV interval, SV *cb)
ALIAS:
stat_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_stat), cb, default_loop_sv);
e_fh (RETVAL) = newSVsv (path);
ev_stat_set (RETVAL, SvPVbyte_nolen (e_fh (RETVAL)), interval);
if (!ix) START (stat, RETVAL);
OUTPUT:
RETVAL
#ifndef EV_NO_LOOPS
ev_embed *embed (struct ev_loop *loop, SV *cb = 0)
ALIAS:
embed_ns = 1
CODE:
{
if (!(ev_backend (loop) & ev_embeddable_backends ()))
croak ("passed loop is not embeddable via EV::embed,");
RETVAL = e_new (sizeof (ev_embed), cb, default_loop_sv);
e_fh (RETVAL) = newSVsv (ST (0));
ev_embed_set (RETVAL, loop);
if (!ix) START (embed, RETVAL);
}
OUTPUT:
RETVAL
#endif
ev_async *async (SV *cb)
ALIAS:
async_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_async), cb, default_loop_sv);
ev_async_set (RETVAL);
if (!ix) START (async, RETVAL);
OUTPUT:
RETVAL
void once (SV *fh, int events, SV *timeout, SV *cb)
CODE:
ev_once (
evapi.default_loop,
s_fileno (fh, events & EV_WRITE), events,
SvOK (timeout) ? SvNV (timeout) : -1.,
e_once_cb,
newSVsv (cb)
);
PROTOTYPES: DISABLE
MODULE = EV PACKAGE = EV::Watcher PREFIX = ev_
int ev_is_active (ev_watcher *w)
int ev_is_pending (ev_watcher *w)
void ev_invoke (ev_watcher *w, int revents = EV_NONE)
C_ARGS: e_loop (w), w, revents
int ev_clear_pending (ev_watcher *w)
C_ARGS: e_loop (w), w
void ev_feed_event (ev_watcher *w, int revents = EV_NONE)
C_ARGS: e_loop (w), w, revents
int keepalive (ev_watcher *w, SV *new_value = NO_INIT)
CODE:
{
RETVAL = w->e_flags & WFLAG_KEEPALIVE;
if (items > 1)
{
int value = SvTRUE (new_value) ? WFLAG_KEEPALIVE : 0;
if ((value ^ w->e_flags) & WFLAG_KEEPALIVE)
{
w->e_flags = (w->e_flags & ~WFLAG_KEEPALIVE) | value;
REF (w);
UNREF (w);
}
}
}
OUTPUT:
RETVAL
SV *cb (ev_watcher *w, SV *new_cb = NO_INIT)
CODE:
{
if (items > 1)
{
new_cb = s_get_cv_croak (new_cb);
RETVAL = newRV_noinc (w->cb_sv);
w->cb_sv = SvREFCNT_inc (new_cb);
}
else
RETVAL = newRV_inc (w->cb_sv);
}
OUTPUT:
RETVAL
SV *data (ev_watcher *w, SV *new_data = NO_INIT)
CODE:
{
RETVAL = w->data ? newSVsv (w->data) : &PL_sv_undef;
if (items > 1)
{
SvREFCNT_dec (w->data);
w->data = newSVsv (new_data);
}
}
OUTPUT:
RETVAL
SV *loop (ev_watcher *w)
CODE:
RETVAL = newRV_inc (w->loop);
OUTPUT:
RETVAL
int priority (ev_watcher *w, SV *new_priority = NO_INIT)
CODE:
{
RETVAL = w->priority;
if (items > 1)
CODE:
START (prepare, w);
void ev_prepare_stop (ev_prepare *w)
CODE:
STOP (prepare, w);
void DESTROY (ev_prepare *w)
CODE:
STOP (prepare, w);
e_destroy (w);
MODULE = EV PACKAGE = EV::Check PREFIX = ev_check_
void ev_check_start (ev_check *w)
CODE:
START (check, w);
void ev_check_stop (ev_check *w)
CODE:
STOP (check, w);
void DESTROY (ev_check *w)
CODE:
STOP (check, w);
e_destroy (w);
MODULE = EV PACKAGE = EV::Fork PREFIX = ev_fork_
void ev_fork_start (ev_fork *w)
CODE:
START (fork, w);
void ev_fork_stop (ev_fork *w)
CODE:
STOP (fork, w);
void DESTROY (ev_fork *w)
CODE:
STOP (fork, w);
e_destroy (w);
#if CLEANUP_ENABLED
MODULE = EV PACKAGE = EV::Cleanup PREFIX = ev_cleanup_
void ev_cleanup_start (ev_cleanup *w)
CODE:
START (cleanup, w);
void ev_cleanup_stop (ev_cleanup *w)
CODE:
STOP (cleanup, w);
void DESTROY (ev_cleanup *w)
CODE:
STOP (cleanup, w);
SvREFCNT_inc (w->loop); /* has been dec'ed on creation */
e_destroy (w);
int keepalive (ev_watcher *w, SV *new_value = 0)
CODE:
RETVAL = 1;
OUTPUT:
RETVAL
#endif
MODULE = EV PACKAGE = EV::Child PREFIX = ev_child_
#if EV_CHILD_ENABLE
void ev_child_reinit ()
CODE:
ev_signal_stop (evapi.default_loop, &childev);
ev_signal_start (evapi.default_loop, &childev);
void ev_child_start (ev_child *w)
CODE:
START (child, w);
void ev_child_stop (ev_child *w)
CODE:
STOP (child, w);
void DESTROY (ev_child *w)
CODE:
STOP (child, w);
e_destroy (w);
void set (ev_child *w, int pid, int trace)
CODE:
RESET (child, w, (w, pid, trace));
int pid (ev_child *w)
ALIAS:
rpid = 1
rstatus = 2
CODE:
RETVAL = ix == 0 ? w->pid
: ix == 1 ? w->rpid
: w->rstatus;
OUTPUT:
RETVAL
#endif
MODULE = EV PACKAGE = EV::Stat PREFIX = ev_stat_
void ev_stat_start (ev_stat *w)
CODE:
START (stat, w);
void ev_stat_stop (ev_stat *w)
CODE:
STOP (stat, w);
void DESTROY (ev_stat *w)
CODE:
STOP (stat, w);
e_destroy (w);
signal_ns = 1
CODE:
{
Signal signum = s_signum (signal);
CHECK_SIG (signal, signum);
RETVAL = e_new (sizeof (ev_signal), cb, ST (0));
ev_signal_set (RETVAL, signum);
if (!ix) START_SIGNAL (RETVAL);
}
OUTPUT:
RETVAL
ev_idle *idle (struct ev_loop *loop, SV *cb)
ALIAS:
idle_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_idle), cb, ST (0));
ev_idle_set (RETVAL);
if (!ix) START (idle, RETVAL);
OUTPUT:
RETVAL
ev_prepare *prepare (struct ev_loop *loop, SV *cb)
ALIAS:
prepare_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_prepare), cb, ST (0));
ev_prepare_set (RETVAL);
if (!ix) START (prepare, RETVAL);
OUTPUT:
RETVAL
ev_check *check (struct ev_loop *loop, SV *cb)
ALIAS:
check_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_check), cb, ST (0));
ev_check_set (RETVAL);
if (!ix) START (check, RETVAL);
OUTPUT:
RETVAL
ev_fork *fork (struct ev_loop *loop, SV *cb)
ALIAS:
fork_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_fork), cb, ST (0));
ev_fork_set (RETVAL);
if (!ix) START (fork, RETVAL);
OUTPUT:
RETVAL
#if CLEANUP_ENABLED
ev_cleanup *cleanup (struct ev_loop *loop, SV *cb)
ALIAS:
cleanup_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_cleanup), cb, ST (0));
SvREFCNT_dec (RETVAL->loop); /* must not keep loop object alive */
ev_cleanup_set (RETVAL);
if (!ix) START (cleanup, RETVAL);
OUTPUT:
RETVAL
#endif
ev_child *child (struct ev_loop *loop, int pid, int trace, SV *cb)
ALIAS:
child_ns = 1
CODE:
#if EV_CHILD_ENABLE
RETVAL = e_new (sizeof (ev_child), cb, ST (0));
ev_child_set (RETVAL, pid, trace);
if (!ix) START (child, RETVAL);
#else
croak ("EV::child watchers not supported on this platform");
#endif
OUTPUT:
RETVAL
ev_stat *stat (struct ev_loop *loop, SV *path, NV interval, SV *cb)
ALIAS:
stat_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_stat), cb, ST (0));
e_fh (RETVAL) = newSVsv (path);
ev_stat_set (RETVAL, SvPVbyte_nolen (e_fh (RETVAL)), interval);
if (!ix) START (stat, RETVAL);
OUTPUT:
RETVAL
ev_embed *embed (struct ev_loop *loop, struct ev_loop *other, SV *cb = 0)
ALIAS:
embed_ns = 1
CODE:
{
if (!(ev_backend (other) & ev_embeddable_backends ()))
croak ("passed loop is not embeddable via EV::embed,");
RETVAL = e_new (sizeof (ev_embed), cb, ST (0));
e_fh (RETVAL) = newSVsv (ST (1));
ev_embed_set (RETVAL, other);
if (!ix) START (embed, RETVAL);
}
OUTPUT:
RETVAL
ev_async *async (struct ev_loop *loop, SV *cb)
ALIAS:
async_ns = 1
CODE:
RETVAL = e_new (sizeof (ev_async), cb, ST (0));
ev_async_set (RETVAL);
if (!ix) START (async, RETVAL);
OUTPUT:
RETVAL
void once (struct ev_loop *loop, SV *fh, int events, SV *timeout, SV *cb)
CODE:
( run in 1.549 second using v1.01-cache-2.11-cpan-98e64b0badf )