summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-05-25 15:52:33 +0000
committerNicholas Clark <nick@ccl4.org>2005-05-25 15:52:33 +0000
commitc21d1a0f049833fd2ca59ef598337f86f2cd08f4 (patch)
tree14de04bc69e174d99a2c18b667d2260f381dd9ef /ext
parent4ba4de046b58ba69d5377ba3b48b04bbfd30638f (diff)
downloadperl-c21d1a0f049833fd2ca59ef598337f86f2cd08f4.tar.gz
Track the mapping between source shared hash keys and target shared
hash keys to save repeated lookups during cloning. p4raw-id: //depot/perl@24574
Diffstat (limited to 'ext')
-rwxr-xr-xext/threads/threads.xs3
1 files changed, 3 insertions, 0 deletions
diff --git a/ext/threads/threads.xs b/ext/threads/threads.xs
index 03cb590b13..f6b57d636c 100755
--- a/ext/threads/threads.xs
+++ b/ext/threads/threads.xs
@@ -615,6 +615,7 @@ Perl_ithread_join(pTHX_ SV *obj)
clone_params.stashes = newAV();
clone_params.flags |= CLONEf_JOIN_IN;
PL_ptr_table = ptr_table_new();
+ PL_shared_hek_table = ptr_table_new();
current_thread = Perl_ithread_get(aTHX);
Perl_ithread_set(aTHX_ thread);
/* ensure 'meaningful' addresses retain their meaning */
@@ -646,6 +647,8 @@ Perl_ithread_join(pTHX_ SV *obj)
SvREFCNT_inc(retparam);
ptr_table_free(PL_ptr_table);
PL_ptr_table = NULL;
+ ptr_table_free(PL_shared_hek_table);
+ PL_shared_hek_table = NULL;
}
/* We are finished with it */