… | |
… | |
1355 | else |
1355 | else |
1356 | return 0; |
1356 | return 0; |
1357 | } |
1357 | } |
1358 | |
1358 | |
1359 | static void |
1359 | static void |
1360 | api_trace (struct coro *coro, int flags) |
1360 | api_trace (SV *coro_sv, int flags) |
1361 | { |
1361 | { |
1362 | dTHX; |
1362 | dTHX; |
|
|
1363 | struct coro *coro = SvSTATE (coro_sv); |
1363 | |
1364 | |
1364 | if (flags & CC_TRACE) |
1365 | if (flags & CC_TRACE) |
1365 | { |
1366 | { |
1366 | if (!coro->cctx) |
1367 | if (!coro->cctx) |
1367 | coro->cctx = cctx_new (); |
1368 | coro->cctx = cctx_new (); |
… | |
… | |
1612 | RETVAL = boolSV (coro->flags & ix); |
1613 | RETVAL = boolSV (coro->flags & ix); |
1613 | OUTPUT: |
1614 | OUTPUT: |
1614 | RETVAL |
1615 | RETVAL |
1615 | |
1616 | |
1616 | void |
1617 | void |
1617 | api_trace (Coro::State coro, int flags = CC_TRACE | CC_TRACE_SUB) |
1618 | api_trace (SV *coro, int flags = CC_TRACE | CC_TRACE_SUB) |
1618 | |
1619 | |
1619 | SV * |
1620 | SV * |
1620 | has_stack (Coro::State coro) |
1621 | has_stack (Coro::State coro) |
1621 | PROTOTYPE: $ |
1622 | PROTOTYPE: $ |
1622 | CODE: |
1623 | CODE: |
… | |
… | |
1784 | newSVpvn ("[async_pool idle]", sizeof ("[async_pool idle]") - 1), 0); |
1785 | newSVpvn ("[async_pool idle]", sizeof ("[async_pool idle]") - 1), 0); |
1785 | coro->save = CORO_SAVE_DEF; |
1786 | coro->save = CORO_SAVE_DEF; |
1786 | coro->prio = 0; |
1787 | coro->prio = 0; |
1787 | |
1788 | |
1788 | if (coro->cctx && (coro->cctx->flags & CC_TRACE)) |
1789 | if (coro->cctx && (coro->cctx->flags & CC_TRACE)) |
1789 | api_trace (coro, 0); |
1790 | api_trace (coro_current, 0); |
1790 | |
1791 | |
1791 | av_push (av_async_pool, newSVsv (coro_current)); |
1792 | av_push (av_async_pool, newSVsv (coro_current)); |
1792 | } |
1793 | } |
1793 | |
1794 | |
1794 | |
1795 | |