diff options
author | Nicholas Clark <nick@ccl4.org> | 2010-04-18 13:24:20 +0100 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2010-04-18 13:24:20 +0100 |
commit | 8165faea6ee20f11c287f0f531d49cc63ea9e6f3 (patch) | |
tree | af2df3167c92fa5f6b819f7cabaf152f274cdee2 | |
parent | da76b8593eec70dc736daf75a7180d2cb0bd0f1f (diff) | |
download | perl-8165faea6ee20f11c287f0f531d49cc63ea9e6f3.tar.gz |
Move PERL_ASYNC_CHECK() from POPBLOCK() to the kill case of Perl_apply().
This ensures that (safe) signals sent to the same process are still dispatched
within the same statement (as before), without overloading the semantics of
block popping.
-rw-r--r-- | cop.h | 1 | ||||
-rw-r--r-- | doio.c | 2 |
2 files changed, 2 insertions, 1 deletions
@@ -592,7 +592,6 @@ struct block { /* Exit a block (RETURN and LAST). */ #define POPBLOCK(cx,pm) \ DEBUG_CX("POP"); \ - PERL_ASYNC_CHECK(); \ cx = &cxstack[cxstack_ix--], \ newsp = PL_stack_base + cx->blk_oldsp, \ PL_curcop = cx->blk_oldcop, \ @@ -1740,6 +1740,7 @@ nothing in the core. } } } + PERL_ASYNC_CHECK(); break; } #endif @@ -1770,6 +1771,7 @@ nothing in the core. tot--; } } + PERL_ASYNC_CHECK(); break; #endif case OP_UNLINK: |