|
|
1 | /* this works around a bug in mingw32 providing a non-working setjmp */ |
|
|
2 | #define USE_NO_MINGW_SETJMP_TWO_ARGS |
|
|
3 | |
1 | #define NDEBUG 1 |
4 | #define NDEBUG 1 |
2 | |
5 | |
3 | #include "libcoro/coro.c" |
6 | #include "libcoro/coro.c" |
4 | |
7 | |
5 | #define PERL_NO_GET_CONTEXT |
8 | #define PERL_NO_GET_CONTEXT |
… | |
… | |
2794 | { |
2797 | { |
2795 | SV *cb_cv = s_get_cv_croak (arg [1]); |
2798 | SV *cb_cv = s_get_cv_croak (arg [1]); |
2796 | av_push (av, SvREFCNT_inc_NN (cb_cv)); |
2799 | av_push (av, SvREFCNT_inc_NN (cb_cv)); |
2797 | |
2800 | |
2798 | if (SvIVX (AvARRAY (av)[0])) |
2801 | if (SvIVX (AvARRAY (av)[0])) |
2799 | coro_signal_wake (aTHX_ av, 1); /* ust be the only waiter */ |
2802 | coro_signal_wake (aTHX_ av, 1); /* must be the only waiter */ |
2800 | |
2803 | |
2801 | frame->prepare = prepare_nop; |
2804 | frame->prepare = prepare_nop; |
2802 | frame->check = slf_check_nop; |
2805 | frame->check = slf_check_nop; |
2803 | } |
2806 | } |
2804 | else if (SvIVX (AvARRAY (av)[0])) |
2807 | else if (SvIVX (AvARRAY (av)[0])) |