summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pp.c b/pp.c
index 65b1f17310..ee9d47e90f 100644
--- a/pp.c
+++ b/pp.c
@@ -4348,6 +4348,11 @@ PP(pp_lock)
#ifdef USE_THREADS
sv_lock(sv);
#endif /* USE_THREADS */
+#ifdef USE_ITHREADS
+ shared_sv *ssv = Perl_sharedsv_find(aTHX_ sv);
+ if(ssv)
+ Perl_sharedsv_lock(aTHX_ ssv);
+#endif /* USE_ITHREADS */
if (SvTYPE(retsv) == SVt_PVAV || SvTYPE(retsv) == SVt_PVHV
|| SvTYPE(retsv) == SVt_PVCV) {
retsv = refto(retsv);