This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
More fixups for thrperl integration.
[perl5.git] / perl.c
diff --git a/perl.c b/perl.c
index e7600df..242535a 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -830,24 +830,23 @@ print \"  \\@INC:\\n    @INC\\n\";");
     main_cv = compcv = (CV*)NEWSV(1104,0);
     sv_upgrade((SV *)compcv, SVt_PVCV);
     CvUNIQUE_on(compcv);
-#ifdef USE_THREADS
-    CvOWNER(compcv) = 0;
-    New(666, CvMUTEXP(compcv), 1, pthread_mutex_t);
-    MUTEX_INIT(CvMUTEXP(compcv));
-    New(666, CvCONDP(compcv), 1, pthread_cond_t);
-    COND_INIT(CvCONDP(compcv));
-#endif /* USE_THREADS */
 
     comppad = newAV();
     av_push(comppad, Nullsv);
     curpad = AvARRAY(comppad);
     comppad_name = newAV();
     comppad_name_fill = 0;
+    min_intro_pending = 0;
+    padix = 0;
 #ifdef USE_THREADS
     av_store(comppad_name, 0, newSVpv("@_", 2));
+    curpad[0] = (SV*)newAV();
+    CvOWNER(compcv) = 0;
+    New(666, CvMUTEXP(compcv), 1, pthread_mutex_t);
+    MUTEX_INIT(CvMUTEXP(compcv));
+    New(666, CvCONDP(compcv), 1, pthread_cond_t);
+    COND_INIT(CvCONDP(compcv));
 #endif /* USE_THREADS */
-    min_intro_pending = 0;
-    padix = 0;
 
     comppadlist = newAV();
     AvREAL_off(comppadlist);
@@ -1333,6 +1332,7 @@ perl_eval_pv(p, croak_on_error)
 char* p;
 I32 croak_on_error;
 {
+    dTHR;
     dSP;
     SV* sv = newSVpv(p, 0);
 
@@ -2323,13 +2323,13 @@ dARGS
 static void
 nuke_stacks()
 {
+    dTHR;
     Safefree(cxstack);
     Safefree(tmps_stack);
     DEBUG( {
        Safefree(debname);
        Safefree(debdelim);
     } )
-<<<<
 }
 
 static PerlIO *tmpfp;  /* moved outside init_lexer() because of UNICOS bug */
@@ -2749,6 +2749,7 @@ my_failure_exit()
 static void
 my_exit_jump()
 {
+    dTHR;
     register CONTEXT *cx;
     I32 gimme;
     SV **newsp;