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.261 by root, Mon Nov 10 05:09:30 2008 UTC vs.
Revision 1.262 by root, Mon Nov 10 20:38:19 2008 UTC

1068 PL_op = (OP *)&myop; 1068 PL_op = (OP *)&myop;
1069 PL_op = PL_ppaddr[OP_ENTERSUB](aTHX); 1069 PL_op = PL_ppaddr[OP_ENTERSUB](aTHX);
1070 SPAGAIN; 1070 SPAGAIN;
1071} 1071}
1072 1072
1073/* the tail of transfer: execute stuff we can onyl do afetr a transfer */ 1073/* the tail of transfer: execute stuff we can only do after a transfer */
1074static void 1074static void
1075transfer_tail (void) 1075transfer_tail (pTHX)
1076{ 1076{
1077 struct coro *next = (struct coro *)transfer_next; 1077 struct coro *next = (struct coro *)transfer_next;
1078 transfer_next = 0; //D for temporary assertion in transfer 1078 transfer_next = 0; //D for temporary assertion in transfer
1079 assert (("FATAL ERROR: internal error 1067 in Coro module, please report", next));//D 1079 assert (("FATAL ERROR: internal error 1067 in Coro module, please report", next));//D
1080 1080
1113 1113
1114 /* inject a fake subroutine call to cctx_init */ 1114 /* inject a fake subroutine call to cctx_init */
1115 cctx_prepare (aTHX_ (coro_cctx *)arg); 1115 cctx_prepare (aTHX_ (coro_cctx *)arg);
1116 1116
1117 /* cctx_run is the alternative tail of transfer() */ 1117 /* cctx_run is the alternative tail of transfer() */
1118 transfer_tail (); 1118 transfer_tail (aTHX);
1119 1119
1120 /* somebody or something will hit me for both perl_run and PL_restartop */ 1120 /* somebody or something will hit me for both perl_run and PL_restartop */
1121 PL_restartop = PL_op; 1121 PL_restartop = PL_op;
1122 perl_run (PL_curinterp); 1122 perl_run (PL_curinterp);
1123 1123
1373 prev__cctx->top_env = PL_top_env; 1373 prev__cctx->top_env = PL_top_env;
1374 PL_top_env = next->cctx->top_env; 1374 PL_top_env = next->cctx->top_env;
1375 coro_transfer (&prev__cctx->cctx, &next->cctx->cctx); 1375 coro_transfer (&prev__cctx->cctx, &next->cctx->cctx);
1376 } 1376 }
1377 1377
1378 transfer_tail (); 1378 transfer_tail (aTHX);
1379 } 1379 }
1380} 1380}
1381 1381
1382#define TRANSFER(ta, force_cctx) transfer (aTHX_ (ta).prev, (ta).next, (force_cctx)) 1382#define TRANSFER(ta, force_cctx) transfer (aTHX_ (ta).prev, (ta).next, (force_cctx))
1383#define TRANSFER_CHECK(ta) transfer_check (aTHX_ (ta).prev, (ta).next) 1383#define TRANSFER_CHECK(ta) transfer_check (aTHX_ (ta).prev, (ta).next)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines