ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Coro/State.xs
(Generate patch)

Comparing Coro/Coro/State.xs (file contents):
Revision 1.167 by root, Thu Sep 27 15:52:31 2007 UTC vs.
Revision 1.168 by root, Thu Sep 27 16:10:48 2007 UTC

963 } 963 }
964 964
965 prev__cctx = prev->cctx; 965 prev__cctx = prev->cctx;
966 966
967 /* possibly "free" the cctx */ 967 /* possibly "free" the cctx */
968 if (prev__cctx->idle_sp == STACKLEVEL) 968 if (prev__cctx->idle_sp == STACKLEVEL && !(prev__cctx->flags & CC_TRACE))
969 { 969 {
970 /* I assume that STACKLEVEL is a stronger indicator than PL_top_env changes */ 970 /* I assume that STACKLEVEL is a stronger indicator than PL_top_env changes */
971 assert (("ERROR: current top_env must equal previous top_env", PL_top_env == prev__cctx->idle_te)); 971 assert (("ERROR: current top_env must equal previous top_env", PL_top_env == prev__cctx->idle_te));
972 972
973 prev->cctx = 0; 973 prev->cctx = 0;
1564 else 1564 else
1565 if (coro->cctx && coro->cctx->flags & CC_TRACE) 1565 if (coro->cctx && coro->cctx->flags & CC_TRACE)
1566 { 1566 {
1567 coro->cctx->flags &= ~(CC_TRACE | CC_TRACE_ALL); 1567 coro->cctx->flags &= ~(CC_TRACE | CC_TRACE_ALL);
1568 coro->cctx->flags |= CC_NOREUSE; 1568 coro->cctx->flags |= CC_NOREUSE;
1569
1570 if (coro->flags & CF_RUNNING)
1571 PL_runops = RUNOPS_DEFAULT;
1572 else
1573 coro->runops = RUNOPS_DEFAULT;
1569 } 1574 }
1570 1575
1571SV * 1576SV *
1572has_stack (Coro::State coro) 1577has_stack (Coro::State coro)
1573 PROTOTYPE: $ 1578 PROTOTYPE: $

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines