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.40 by root, Tue Nov 27 01:41:41 2001 UTC vs.
Revision 1.41 by root, Tue Nov 27 02:51:03 2001 UTC

87 I32 savestack_max; 87 I32 savestack_max;
88 OP **retstack; 88 OP **retstack;
89 I32 retstack_ix; 89 I32 retstack_ix;
90 I32 retstack_max; 90 I32 retstack_max;
91 COP *curcop; 91 COP *curcop;
92 PMOP *curpm;
93 JMPENV *top_env; 92 JMPENV *top_env;
94 93
95 /* data associated with this coroutine (initial args) */ 94 /* data associated with this coroutine (initial args) */
96 AV *args; 95 AV *args;
97}; 96};
598 dSP; 597 dSP;
599 Coro__State ctx = (Coro__State)arg; 598 Coro__State ctx = (Coro__State)arg;
600 SV *sub_init = (SV*)get_cv(SUB_INIT, FALSE); 599 SV *sub_init = (SV*)get_cv(SUB_INIT, FALSE);
601 600
602 coro_init_stacks (aTHX); 601 coro_init_stacks (aTHX);
603 PL_curpm = 0; /* segfault on first access */
604 /*PL_curcop = 0;*/ 602 /*PL_curcop = 0;*/
605 /*PL_in_eval = PL_in_eval;*/ /* inherit */ 603 /*PL_in_eval = PL_in_eval;*/ /* inherit */
606 SvREFCNT_dec (GvAV (PL_defgv)); 604 SvREFCNT_dec (GvAV (PL_defgv));
607 GvAV (PL_defgv) = ctx->args; 605 GvAV (PL_defgv) = ctx->args;
608 606
750 setup_coro (next); 748 setup_coro (next);
751 } 749 }
752 750
753 /* 751 /*
754 * xnext is now either prev or next, depending on wether 752 * xnext is now either prev or next, depending on wether
755 * we switched the c stack or not. that's why i use a global 753 * we switched the c stack or not. that's why I use a global
756 * variable, that should become thread-specific at one point. 754 * variable, that should become thread-specific at one point.
757 */ 755 */
758 xnext->cursp = stacklevel; 756 xnext->cursp = stacklevel;
759 } 757 }
760 758
902 coro_state_stash = gv_stashpv ("Coro::State", TRUE); 900 coro_state_stash = gv_stashpv ("Coro::State", TRUE);
903 901
904 newCONSTSUB (coro_state_stash, "SAVE_DEFAV", newSViv (TRANSFER_SAVE_DEFAV)); 902 newCONSTSUB (coro_state_stash, "SAVE_DEFAV", newSViv (TRANSFER_SAVE_DEFAV));
905 newCONSTSUB (coro_state_stash, "SAVE_DEFSV", newSViv (TRANSFER_SAVE_DEFSV)); 903 newCONSTSUB (coro_state_stash, "SAVE_DEFSV", newSViv (TRANSFER_SAVE_DEFSV));
906 newCONSTSUB (coro_state_stash, "SAVE_ERRSV", newSViv (TRANSFER_SAVE_ERRSV)); 904 newCONSTSUB (coro_state_stash, "SAVE_ERRSV", newSViv (TRANSFER_SAVE_ERRSV));
907 newCONSTSUB (coro_state_stash, "SAVE_CURPM", newSViv (TRANSFER_SAVE_CURPM));
908 newCONSTSUB (coro_state_stash, "SAVE_CCTXT", newSViv (TRANSFER_SAVE_CCTXT)); 905 newCONSTSUB (coro_state_stash, "SAVE_CCTXT", newSViv (TRANSFER_SAVE_CCTXT));
909 906
910 if (!padlist_cache) 907 if (!padlist_cache)
911 padlist_cache = newHV (); 908 padlist_cache = newHV ();
912 909

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines