… | |
… | |
119 | slf_init_timer (pTHX_ struct CoroSLF *frame, CV *cv, SV **arg, int items) |
119 | slf_init_timer (pTHX_ struct CoroSLF *frame, CV *cv, SV **arg, int items) |
120 | { |
120 | { |
121 | SV *data; |
121 | SV *data; |
122 | NV after; |
122 | NV after; |
123 | |
123 | |
124 | if (items != 1) |
124 | if (items > 1) |
125 | croak ("Coro::EV::timer_once requires exactly one parameter, not %d.\n", items); |
125 | croak ("Coro::EV::timer_once requires at most one parameter, not %d.\n", items); |
126 | |
126 | |
127 | data = sv_2mortal (newRV_inc (CORO_CURRENT)); |
127 | data = sv_2mortal (newRV_inc (CORO_CURRENT)); |
128 | frame->data = (void *)data; |
128 | frame->data = (void *)data; |
129 | frame->prepare = GCoroAPI->prepare_schedule; |
129 | frame->prepare = GCoroAPI->prepare_schedule; |
130 | frame->check = slf_check_once; |
130 | frame->check = slf_check_once; |
131 | |
131 | |
132 | after = SvNV (arg [0]); |
132 | after = items ? SvNV (arg [0]) : 0; |
133 | |
133 | |
134 | ev_once ( |
134 | ev_once ( |
135 | EV_DEFAULT_UC, |
135 | EV_DEFAULT_UC, |
136 | -1, |
136 | -1, |
137 | 0, |
137 | 0, |
… | |
… | |
316 | --inhibit; |
316 | --inhibit; |
317 | } |
317 | } |
318 | |
318 | |
319 | void |
319 | void |
320 | timed_io_once (...) |
320 | timed_io_once (...) |
|
|
321 | PROTOTYPE: $$;$ |
321 | CODE: |
322 | CODE: |
322 | CORO_EXECUTE_SLF_XS (slf_init_timed_io); |
323 | CORO_EXECUTE_SLF_XS (slf_init_timed_io); |
323 | |
324 | |
324 | void |
325 | void |
325 | timer_once (...) |
326 | timer_once (...) |
|
|
327 | PROTOTYPE: $ |
326 | CODE: |
328 | CODE: |
327 | CORO_EXECUTE_SLF_XS (slf_init_timer); |
329 | CORO_EXECUTE_SLF_XS (slf_init_timer); |
328 | |
330 | |
329 | void |
331 | void |
330 | readable_ev (...) |
332 | _readable_ev (...) |
331 | CODE: |
333 | CODE: |
332 | items = 1; /* ignore the remaining args for speed inside Coro::Handle */ |
334 | items = 1; /* ignore the remaining args for speed inside Coro::Handle */ |
333 | CORO_EXECUTE_SLF_XS (slf_init_readable); |
335 | CORO_EXECUTE_SLF_XS (slf_init_readable); |
334 | |
336 | |
335 | void |
337 | void |
336 | writable_ev (...) |
338 | _writable_ev (...) |
337 | CODE: |
339 | CODE: |
338 | items = 1; /* ignore the remaining args for speed inside Coro::Handle */ |
340 | items = 1; /* ignore the remaining args for speed inside Coro::Handle */ |
339 | CORO_EXECUTE_SLF_XS (slf_init_writable); |
341 | CORO_EXECUTE_SLF_XS (slf_init_writable); |
340 | |
342 | |