Event
view release on metacpan or search on metacpan
int
_timeout_too_early()
CODE:
RETVAL = TimeoutTooEarly;
TimeoutTooEarly=0;
OUTPUT:
RETVAL
void
_memory_counters()
PPCODE:
{
#ifdef EVENT_MEMORY_DEBUG
int xx;
for (xx=0; xx < MAX_MEMORYCOUNT; xx++)
XPUSHs(sv_2mortal(newSViv(MemoryCount[xx])));
#endif
}
void
_incr_looplevel()
PPCODE:
++LoopLevel;
++ExitLevel;
void
_decr_looplevel()
PPCODE:
--LoopLevel;
void
unloop(...)
CODE:
pe_unloop(items? ST(0) : &PL_sv_undef);
void
unloop_all(...)
CODE:
CODE:
pe_sys_sleep(tm);
NV
null_loops_per_second(sec)
int sec
void
all_watchers()
PROTOTYPE:
PPCODE:
pe_watcher *ev;
if (!AllWatchers.next)
return;
ev = (pe_watcher*) AllWatchers.next->self;
while (ev) {
XPUSHs(watcher_2sv(ev));
ev = (pe_watcher*) ev->all.next->self;
}
void
all_idle()
PROTOTYPE:
PPCODE:
pe_watcher *ev;
if (!Idle.prev)
return;
ev = (pe_watcher*) Idle.prev->self;
while (ev) {
XPUSHs(watcher_2sv(ev));
ev = (pe_watcher*) ((pe_idle*)ev)->iring.prev->self;
}
void
all_running()
PROTOTYPE:
PPCODE:
int fx;
for (fx = CurCBFrame; fx >= 0; fx--) {
pe_watcher *ev = (CBFrame + fx)->ev->up; /* XXX */
XPUSHs(watcher_2sv(ev));
if (GIMME_V != G_ARRAY)
break;
}
void
queue(...)
PROTOTYPE: $;$
PREINIT:
pe_watcher *wa;
pe_event *ev;
PPCODE:
wa = (pe_watcher*) sv_2watcher(ST(0));
if (items == 1) {
ev = (*wa->vtbl->new_event)(wa);
++ev->hits;
}
else if (items == 2) {
if (SvNIOK(ST(1))) {
ev = (*wa->vtbl->new_event)(wa);
ev->hits += SvIV(ST(1));
}
int prio
CODE:
pe_check_recovery();
pe_reentry();
while (pe_empty_queue(prio));
LEAVE; /* reentry */
void
queue_time(prio)
int prio
PPCODE:
NV max=0;
int xx;
if (prio < 0 || prio >= PE_QUEUES)
croak("queue_time(%d) out of domain [0..%d]",
prio, PE_QUEUES-1);
for (xx=0; xx <= prio; xx++)
if (max < QueueTime[xx]) max = QueueTime[xx];
XPUSHs(max? sv_2mortal(newSVnv(max)) : &PL_sv_undef);
MODULE = Event PACKAGE = Event::Event::Io
void
pe_event::got()
PPCODE:
XPUSHs(sv_2mortal(events_mask_2sv(((pe_ioevent*)THIS)->got)));
MODULE = Event PACKAGE = Event::Event::Dataful
void
pe_event::data()
PPCODE:
XPUSHs(((pe_datafulevent*)THIS)->data);
MODULE = Event PACKAGE = Event::Event
void
DESTROY(ref)
SV *ref;
CODE:
{
pe_event *THIS = (pe_event*) sv_2event(ref);
STRLEN n_a;
warn("Event=0x%x '%s' DESTROY SV=0x%x",
THIS, SvPV(THIS->up->desc, n_a),
THIS->mysv? SvRV(THIS->mysv) : 0);
}
(*THIS->vtbl->dtor)(THIS);
}
void
pe_event::mom()
PPCODE:
if (--WarnCounter >= 0) warn("'mom' renamed to 'w'");
XPUSHs(watcher_2sv(THIS->up));
void
pe_event::w()
PPCODE:
XPUSHs(watcher_2sv(THIS->up));
void
pe_event::hits()
PPCODE:
XPUSHs(sv_2mortal(newSViv(THIS->hits)));
void
pe_event::prio()
PPCODE:
XPUSHs(sv_2mortal(newSViv(THIS->prio)));
MODULE = Event PACKAGE = Event::Watcher
void
DESTROY(ref)
SV *ref;
CODE:
{
pe_watcher *THIS = (pe_watcher*) sv_2watcher(ref);
assert(THIS);
if (THIS->mysv) {
THIS->mysv=0;
if (WaCANDESTROY(THIS)) /*mysv*/
(*THIS->vtbl->dtor)(THIS);
}
}
void
pe_watcher::pending()
PPCODE:
{
if (GIMME_V == G_ARRAY) {
pe_event *ev = (pe_event *) THIS->events.prev->self;
while (ev) {
XPUSHs(event_2sv(ev));
ev = (pe_event*) ev->peer.prev->self;
}
} else {
XPUSHs(THIS->events.next->self? &PL_sv_yes : &PL_sv_no);
}
pe_watcher_cancel(THIS);
void
pe_watcher::now()
CODE:
pe_watcher_now(THIS);
void
pe_watcher::use_keys(...)
PREINIT:
PPCODE:
warn("use_keys is deprecated");
void
pe_watcher::is_running(...)
PPCODE:
XPUSHs(sv_2mortal(newSViv(THIS->running)));
void
pe_watcher::is_active(...)
PPCODE:
PUTBACK;
XPUSHs(boolSV(WaACTIVE(THIS)));
void
pe_watcher::is_suspended(...)
PPCODE:
PUTBACK;
XPUSHs(boolSV(WaSUSPEND(THIS)));
void
pe_watcher::is_cancelled(...)
PPCODE:
PUTBACK;
XPUSHs(boolSV(WaCANCELLED(THIS)));
void
pe_watcher::cb(...)
PPCODE:
PUTBACK;
_watcher_callback(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::cbtime(...)
PPCODE:
PUTBACK;
_watcher_cbtime(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::desc(...)
PPCODE:
PUTBACK;
_watcher_desc(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::debug(...)
PPCODE:
PUTBACK;
_watcher_debug(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::prio(...)
PPCODE:
PUTBACK;
_watcher_priority(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::reentrant(...)
PPCODE:
PUTBACK;
_watcher_reentrant(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::repeat(...)
PPCODE:
PUTBACK;
_watcher_repeat(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::max_cb_tm(...)
PPCODE:
PUTBACK;
_watcher_max_cb_tm(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
MODULE = Event PACKAGE = Event::Watcher::Tied
void
allocate(clname, temple)
SV *clname
SV *temple
PPCODE:
if (!SvROK(temple)) croak("Bad template");
XPUSHs(watcher_2sv(pe_tied_allocate(gv_stashsv(clname, 1),
SvRV(temple))));
void
pe_watcher::hard(...)
PPCODE:
PUTBACK;
_timeable_hard(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::at(...)
PPCODE:
PUTBACK;
_tied_at(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::flags(...)
PPCODE:
PUTBACK;
_tied_flags(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
MODULE = Event PACKAGE = Event::idle
void
allocate(clname, temple)
SV *clname;
SV *temple;
PPCODE:
if (!SvROK(temple)) croak("Bad template");
XPUSHs(watcher_2sv(pe_idle_allocate(gv_stashsv(clname, 1),
SvRV(temple))));
void
pe_watcher::hard(...)
PPCODE:
PUTBACK;
_timeable_hard(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::max(...)
PPCODE:
PUTBACK;
_idle_max_interval(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::min(...)
PPCODE:
PUTBACK;
_idle_min_interval(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
MODULE = Event PACKAGE = Event::timer
void
allocate(clname, temple)
SV *clname;
SV *temple;
PPCODE:
XPUSHs(watcher_2sv(pe_timer_allocate(gv_stashsv(clname, 1),
SvRV(temple))));
void
pe_watcher::at(...)
PPCODE:
PUTBACK;
_timer_at(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::hard(...)
PPCODE:
PUTBACK;
_timeable_hard(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::interval(...)
PPCODE:
PUTBACK;
_timer_interval(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
MODULE = Event PACKAGE = Event::io
void
allocate(clname, temple)
SV *clname;
SV *temple;
PPCODE:
if (!SvROK(temple)) croak("Bad template");
XPUSHs(watcher_2sv(pe_io_allocate(gv_stashsv(clname, 1),
SvRV(temple))));
void
pe_watcher::poll(...)
PPCODE:
PUTBACK;
_io_poll(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::fd(...)
PPCODE:
PUTBACK;
_io_handle(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::timeout(...)
PPCODE:
PUTBACK;
_io_timeout(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::timeout_cb(...)
PPCODE:
PUTBACK;
_io_timeout_cb(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
MODULE = Event PACKAGE = Event::var
void
allocate(clname, temple)
SV *clname;
SV *temple;
PPCODE:
XPUSHs(watcher_2sv(pe_var_allocate(gv_stashsv(clname, 1),
SvRV(temple))));
void
pe_watcher::var(...)
PPCODE:
PUTBACK;
_var_variable(THIS, items == 2? ST(1) : 0); /* don't mortalcopy!! */
SPAGAIN;
void
pe_watcher::poll(...)
PPCODE:
PUTBACK;
_var_events(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
MODULE = Event PACKAGE = Event::signal
void
allocate(clname, temple)
SV *clname;
SV *temple;
PPCODE:
XPUSHs(watcher_2sv(pe_signal_allocate(gv_stashsv(clname, 1),
SvRV(temple))));
void
pe_watcher::signal(...)
PPCODE:
PUTBACK;
_signal_signal(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
MODULE = Event PACKAGE = Event::group
void
allocate(clname, temple)
SV *clname;
SV *temple;
PPCODE:
XPUSHs(watcher_2sv(pe_group_allocate(gv_stashsv(clname, 1),
SvRV(temple))));
void
pe_watcher::timeout(...)
PPCODE:
PUTBACK;
_group_timeout(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::add(...)
PPCODE:
PUTBACK;
_group_add(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
void
pe_watcher::del(...)
PPCODE:
PUTBACK;
_group_del(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
MODULE = Event PACKAGE = Event::generic
void
allocate(clname, temple)
SV *clname;
SV *temple;
PPCODE:
XPUSHs(watcher_2sv(pe_generic_allocate(gv_stashsv(clname, 1),
SvRV(temple))));
void
pe_watcher::source(...)
PPCODE:
PUTBACK;
_generic_source(THIS, items == 2? sv_mortalcopy(ST(1)) : 0);
SPAGAIN;
MODULE = Event PACKAGE = Event::generic::Source
void
allocate(clname, temple)
SV *clname;
SV *temple;
PPCODE:
if (!SvROK(temple)) croak("Bad template");
XPUSHs(genericsrc_2sv(pe_genericsrc_allocate(gv_stashsv(clname, 1),
SvRV(temple))));
void
DESTROY(ref)
SV *ref;
CODE:
{
pe_genericsrc_dtor(sv_2genericsrc(ref));
}
void
pe_genericsrc::event(...)
PPCODE:
pe_genericsrc_event(THIS,
items >= 2 ? sv_mortalcopy(ST(1)) : &PL_sv_undef);
( run in 1.448 second using v1.01-cache-2.11-cpan-5511b514fd6 )