… | |
… | |
2372 | safe_cancel (pTHX_ struct coro *coro, SV **arg, int items) |
2372 | safe_cancel (pTHX_ struct coro *coro, SV **arg, int items) |
2373 | { |
2373 | { |
2374 | if (coro->cctx) |
2374 | if (coro->cctx) |
2375 | croak ("coro inside C callback, unable to cancel at this time, caught"); |
2375 | croak ("coro inside C callback, unable to cancel at this time, caught"); |
2376 | |
2376 | |
2377 | if (coro->flags & CF_NEW) |
2377 | if (coro->flags & (CF_NEW | CF_ZOMBIE)) |
2378 | { |
2378 | { |
2379 | coro_set_status (aTHX_ coro, arg, items); |
2379 | coro_set_status (aTHX_ coro, arg, items); |
2380 | coro_state_destroy (aTHX_ coro); |
2380 | coro_state_destroy (aTHX_ coro); |
2381 | } |
2381 | } |
2382 | else |
2382 | else |