… | |
… | |
603 | ev_stat_set (RETVAL, SvPVbyte_nolen (RETVAL->fh), interval); |
603 | ev_stat_set (RETVAL, SvPVbyte_nolen (RETVAL->fh), interval); |
604 | if (!ix) START (stat, RETVAL); |
604 | if (!ix) START (stat, RETVAL); |
605 | OUTPUT: |
605 | OUTPUT: |
606 | RETVAL |
606 | RETVAL |
607 | |
607 | |
608 | ev_embed *embed (struct ev_loop *loop, SV *cb) |
608 | ev_embed *embed (struct ev_loop *loop, SV *cb = &PL_sv_undef) |
609 | ALIAS: |
609 | ALIAS: |
610 | embed_ns = 1 |
610 | embed_ns = 1 |
611 | CODE: |
611 | CODE: |
|
|
612 | { |
|
|
613 | if (!(ev_backend (loop) & ev_embeddable_backends ())) |
|
|
614 | croak ("passed loop is not embeddable via EV::embed,"); |
|
|
615 | |
612 | RETVAL = e_new (sizeof (ev_embed), cb, default_loop_sv); |
616 | RETVAL = e_new (sizeof (ev_embed), cb, default_loop_sv); |
613 | RETVAL->fh = newSVsv (ST (0)); |
617 | RETVAL->fh = newSVsv (ST (0)); |
614 | ev_embed_set (RETVAL, loop); |
618 | ev_embed_set (RETVAL, loop); |
|
|
619 | |
|
|
620 | if (!SvOK (cb)) ev_set_cb (RETVAL, 0); |
|
|
621 | |
615 | if (!ix) START (embed, RETVAL); |
622 | if (!ix) START (embed, RETVAL); |
|
|
623 | } |
616 | OUTPUT: |
624 | OUTPUT: |
617 | RETVAL |
625 | RETVAL |
618 | |
626 | |
619 | void once (SV *fh, int events, SV *timeout, SV *cb) |
627 | void once (SV *fh, int events, SV *timeout, SV *cb) |
620 | CODE: |
628 | CODE: |
… | |
… | |
1111 | struct ev_loop *loop = ev_loop_new (flags); |
1119 | struct ev_loop *loop = ev_loop_new (flags); |
1112 | |
1120 | |
1113 | if (!loop) |
1121 | if (!loop) |
1114 | XSRETURN_UNDEF; |
1122 | XSRETURN_UNDEF; |
1115 | |
1123 | |
1116 | RETVAL = sv_bless (newRV_noinc (newSViv (PTR2IV (evapi.default_loop))), stash_loop); |
1124 | RETVAL = sv_bless (newRV_noinc (newSViv (PTR2IV (loop))), stash_loop); |
1117 | } |
1125 | } |
1118 | OUTPUT: |
1126 | OUTPUT: |
1119 | RETVAL |
1127 | RETVAL |
1120 | |
1128 | |
1121 | void DESTROY (struct ev_loop *loop) |
1129 | void DESTROY (struct ev_loop *loop) |
1122 | CODE: |
1130 | CODE: |
1123 | if (loop != evapi.default_loop) /* global destruction sucks */ |
1131 | if (loop != evapi.default_loop) /* global destruction sucks */ |
1124 | ev_loop_destroy (loop); |
1132 | ev_loop_destroy (loop); |
1125 | |
1133 | |
|
|
1134 | ev_io *io (struct ev_loop *loop, SV *fh, int events, SV *cb) |
|
|
1135 | ALIAS: |
|
|
1136 | io_ns = 1 |
|
|
1137 | CODE: |
|
|
1138 | { |
|
|
1139 | int fd = sv_fileno (fh); |
|
|
1140 | CHECK_FD (fh, fd); |
|
|
1141 | |
|
|
1142 | RETVAL = e_new (sizeof (ev_io), cb, ST (0)); |
|
|
1143 | RETVAL->fh = newSVsv (fh); |
|
|
1144 | ev_io_set (RETVAL, fd, events); |
|
|
1145 | if (!ix) START (io, RETVAL); |
|
|
1146 | } |
|
|
1147 | OUTPUT: |
|
|
1148 | RETVAL |
|
|
1149 | |