summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dump.c1
-rw-r--r--pp_ctl.c11
-rw-r--r--run.c1
-rw-r--r--scope.c2
4 files changed, 12 insertions, 3 deletions
diff --git a/dump.c b/dump.c
index b238ee0cb1..d770a6541c 100644
--- a/dump.c
+++ b/dump.c
@@ -2118,6 +2118,7 @@ Perl_runops_debug(pTHX)
}
} while ((PL_op = PL_op->op_ppaddr(aTHX)));
DEBUG_l(Perl_deb(aTHX_ "leaving RUNOPS level\n"));
+ PERL_ASYNC_CHECK();
TAINT_NOT;
return 0;
diff --git a/pp_ctl.c b/pp_ctl.c
index 7a8c79760a..dd4027893d 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -377,6 +377,7 @@ PP(pp_substcont)
TAINT_NOT;
LEAVE_SCOPE(cx->sb_oldsave);
POPSUBST(cx);
+ PERL_ASYNC_CHECK();
RETURNOP(pm->op_next);
/* NOTREACHED */
}
@@ -2732,6 +2733,7 @@ PP(pp_next)
if (PL_scopestack_ix < inner)
leave_scope(PL_scopestack[PL_scopestack_ix]);
PL_curcop = cx->blk_oldcop;
+ PERL_ASYNC_CHECK();
return (cx)->blk_loop.my_op->op_nextop;
}
@@ -2774,6 +2776,7 @@ PP(pp_redo)
LEAVE_SCOPE(oldsave);
FREETMPS;
PL_curcop = cx->blk_oldcop;
+ PERL_ASYNC_CHECK();
return redo_op;
}
@@ -2978,6 +2981,7 @@ PP(pp_goto)
PUTBACK;
(void)(*CvXSUB(cv))(aTHX_ cv);
LEAVE;
+ PERL_ASYNC_CHECK();
return retop;
}
else {
@@ -3049,6 +3053,7 @@ PP(pp_goto)
}
}
}
+ PERL_ASYNC_CHECK();
RETURNOP(CvSTART(cv));
}
}
@@ -3209,6 +3214,7 @@ PP(pp_goto)
PL_do_undump = FALSE;
}
+ PERL_ASYNC_CHECK();
RETURNOP(retop);
}
@@ -5128,10 +5134,13 @@ PP(pp_leavewhen)
leave_scope(PL_scopestack[PL_scopestack_ix]);
PL_curcop = cx->blk_oldcop;
+ PERL_ASYNC_CHECK();
return cx->blk_loop.my_op->op_nextop;
}
- else
+ else {
+ PERL_ASYNC_CHECK();
RETURNOP(cx->blk_givwhen.leave_op);
+ }
}
PP(pp_continue)
diff --git a/run.c b/run.c
index 7c1d0aa8cc..774852d4c0 100644
--- a/run.c
+++ b/run.c
@@ -40,6 +40,7 @@ Perl_runops_standard(pTHX)
register OP *op = PL_op;
while ((PL_op = op = op->op_ppaddr(aTHX))) {
}
+ PERL_ASYNC_CHECK();
TAINT_NOT;
return 0;
diff --git a/scope.c b/scope.c
index ffd0552ac3..121d1f7343 100644
--- a/scope.c
+++ b/scope.c
@@ -1168,8 +1168,6 @@ Perl_leave_scope(pTHX_ I32 base)
}
PL_tainted = was;
-
- PERL_ASYNC_CHECK();
}
void