… | |
… | |
3663 | RETVAL = boolSV (coro->flags & ix); |
3663 | RETVAL = boolSV (coro->flags & ix); |
3664 | OUTPUT: |
3664 | OUTPUT: |
3665 | RETVAL |
3665 | RETVAL |
3666 | |
3666 | |
3667 | void |
3667 | void |
3668 | throw (Coro::State self, SV *exception = &PL_sv_undef) |
3668 | throw (SV *self, SV *exception = &PL_sv_undef) |
3669 | PROTOTYPE: $;$ |
3669 | PROTOTYPE: $;$ |
3670 | CODE: |
3670 | CODE: |
3671 | { |
3671 | { |
|
|
3672 | struct coro *coro = SvSTATE (self); |
3672 | struct coro *current = SvSTATE_current; |
3673 | struct coro *current = SvSTATE_current; |
3673 | SV **exceptionp = self == current ? &CORO_THROW : &self->except; |
3674 | SV **exceptionp = coro == current ? &CORO_THROW : &coro->except; |
3674 | SvREFCNT_dec (*exceptionp); |
3675 | SvREFCNT_dec (*exceptionp); |
3675 | SvGETMAGIC (exception); |
3676 | SvGETMAGIC (exception); |
3676 | *exceptionp = SvOK (exception) ? newSVsv (exception) : 0; |
3677 | *exceptionp = SvOK (exception) ? newSVsv (exception) : 0; |
|
|
3678 | |
|
|
3679 | api_ready (aTHX_ self); |
3677 | } |
3680 | } |
3678 | |
3681 | |
3679 | void |
3682 | void |
3680 | api_trace (SV *coro, int flags = CC_TRACE | CC_TRACE_SUB) |
3683 | api_trace (SV *coro, int flags = CC_TRACE | CC_TRACE_SUB) |
3681 | PROTOTYPE: $;$ |
3684 | PROTOTYPE: $;$ |