summaryrefslogtreecommitdiff
path: root/ext/Thread/Thread.xs
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-08-26 23:53:33 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-08-26 23:53:33 +0000
commit0ae6046c5548636c0d642d76d3c8222375a744dd (patch)
tree700dbf83642d10fb22f2e9e978016c20f6710512 /ext/Thread/Thread.xs
parent7138795d405ad4d121e3ab8f0d48579aee60358b (diff)
downloadperl-0ae6046c5548636c0d642d76d3c8222375a744dd.tar.gz
new thread should set current interp in TLS
p4raw-id: //depot/perl@4032
Diffstat (limited to 'ext/Thread/Thread.xs')
-rw-r--r--ext/Thread/Thread.xs8
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/Thread/Thread.xs b/ext/Thread/Thread.xs
index ad99e2c409..772d41a495 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;