From: Gurusamy Sarathy <gsar@cpan.org>
Date: Thu, 26 Aug 1999 23:53:33 +0000 (+0000)
Subject: new thread should set current interp in TLS
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0ae6046c5548636c0d642d76d3c8222375a744dd;p=p5sagit%2Fp5-mst-13.2.git

new thread should set current interp in TLS

p4raw-id: //depot/perl@4032
---

diff --git a/ext/Thread/Thread.xs b/ext/Thread/Thread.xs
index ad99e2c..772d41a 100644
--- a/ext/Thread/Thread.xs
+++ b/ext/Thread/Thread.xs
@@ -86,9 +86,14 @@ threadstart(void *arg)
     I32 oldscope = PL_scopestack_ix;
     I32 retval;
     SV *sv;
-    AV *av = newAV();
+    AV *av;
     int i, ret;
     dJMPENV;
+
+#if defined(MULTIPLICITY)
+    PERL_SET_INTERP(thr->interp);
+#endif
+
     DEBUG_S(PerlIO_printf(PerlIO_stderr(), "new thread %p waiting to start\n",
 			  thr));
 
@@ -114,6 +119,7 @@ threadstart(void *arg)
     DEBUG_S(PerlIO_printf(PerlIO_stderr(), "new thread %p starting at %s\n",
 			  thr, SvPEEK(TOPs)));
 
+    av = newAV();
     sv = POPs;
     PUTBACK;
     ENTER;