Signal T_SIGNAL struct ev_loop * T_LOOP ev_watcher * T_WATCHER ev_io * T_WATCHER ev_timer * T_WATCHER ev_periodic * T_WATCHER ev_signal * T_WATCHER ev_idle * T_WATCHER ev_prepare * T_WATCHER ev_check * T_WATCHER ev_child * T_WATCHER ev_embed * T_WATCHER ev_stat * T_WATCHER ev_fork * T_WATCHER ev_cleanup * T_WATCHER ev_async * T_WATCHER char * T_PVbyte const char * T_PVbyte INPUT T_SIGNAL if (($var = s_signum_croak ($arg)) <= 0) croak (\"'%s' is not a valid signal number or name\", SvPV_nolen ($arg)); T_PVbyte $var = ($type)SvPVbyte_nolen ($arg) T_LOOP if (!(SvROK ($arg) && SvOBJECT (SvRV ($arg)) && (SvSTASH (SvRV ($arg)) == stash_loop || sv_derived_from ($arg, \"EV::Loop\")))) croak (\"object is not of type EV::Loop\"); $var = ($type)SvIVX (SvRV ($arg)); T_WATCHER if (!(SvROK ($arg) && SvOBJECT (SvRV ($arg)) && (SvSTASH (SvRV ($arg)) == stash_" . ($type =~ /ev_(\S+)/, "$1") . " || sv_derived_from ($arg, \"EV::" . ($type =~ /ev_(\S+)/, ucfirst "$1") . "\")))) croak (\"object is not of type EV::" . ($type =~ /ev_(\S+)/, ucfirst "$1") . "\"); $var = ($type)SvPVX (SvRV ($arg)); OUTPUT T_PVbyte sv_setpv ((SV *)$arg, $var); T_WATCHER $arg = e_bless ((struct ev_watcher *)$var, stash_${ ($type =~ /ev_(\S+)/, \"$1") });