diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2004-10-29 21:04:17 +0000 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2004-10-29 21:04:17 +0000 |
commit | b34c0dd4a7081ed822e2197d6a723d2ab2fdfc86 (patch) | |
tree | 79e12d9672fac988f06daf38b445e954c784b00e /pad.c | |
parent | 2d8d5d5aa55d3bc73a36db1fc2d8bcfe8bb20516 (diff) | |
download | perl-b34c0dd4a7081ed822e2197d6a723d2ab2fdfc86.tar.gz |
[perl #31851] Threading crash with closures
various OpREFCNT_inc() operations weren't doing locking
p4raw-id: //depot/perl@23433
Diffstat (limited to 'pad.c')
-rw-r--r-- | pad.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -1410,7 +1410,9 @@ Perl_cv_clone(pTHX_ CV *proto) #endif CvGV(cv) = CvGV(proto); CvSTASH(cv) = CvSTASH(proto); + OP_REFCNT_LOCK; CvROOT(cv) = OpREFCNT_inc(CvROOT(proto)); + OP_REFCNT_UNLOCK; CvSTART(cv) = CvSTART(proto); CvOUTSIDE(cv) = (CV*)SvREFCNT_inc(outside); CvOUTSIDE_SEQ(cv) = CvOUTSIDE_SEQ(proto); |