summaryrefslogtreecommitdiff
path: root/ext/threads/threads.xs
diff options
context:
space:
mode:
authorArtur Bergman <sky@nanisky.com>2002-02-12 18:26:16 +0000
committerArtur Bergman <sky@nanisky.com>2002-02-12 18:26:16 +0000
commit3275ba964c17f100af90c1175c6541dabcee6dbb (patch)
treef0d9d60a4c78664d8b16e0c392cf072696da1473 /ext/threads/threads.xs
parent6e4796bd3be49024552aaa9b22d75a0e64bdf581 (diff)
downloadperl-3275ba964c17f100af90c1175c6541dabcee6dbb.tar.gz
Stop failures if you pass an object, sv_dup might not be the right
thing to use since I have a feeling we end up cloning far too much. (Like the stash for example).... Maybe we need a lightweight sv_dup that searches the target for things.... Real fix is another option to perl_clone which controls if you should save stashes. p4raw-id: //depot/perl@14663
Diffstat (limited to 'ext/threads/threads.xs')
-rwxr-xr-xext/threads/threads.xs2
1 files changed, 2 insertions, 0 deletions
diff --git a/ext/threads/threads.xs b/ext/threads/threads.xs
index 0ba81dbd12..83dca93257 100755
--- a/ext/threads/threads.xs
+++ b/ext/threads/threads.xs
@@ -424,8 +424,10 @@ Perl_ithread_join(pTHX_ SV *obj)
{
AV* params = (AV*) SvRV(thread->params);
CLONE_PARAMS clone_params;
+ clone_params.stashes = newAV();
PL_ptr_table = ptr_table_new();
retparam = (AV*) sv_dup((SV*)params, &clone_params);
+ SvREFCNT_dec(clone_params.stashes);
SvREFCNT_inc(retparam);
ptr_table_free(PL_ptr_table);
PL_ptr_table = NULL;