This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
alarm() on Windows cannot interrupt blocking I/O
[perl5.git] / cc_runtime.h
index d2e4f7f..90826df 100644 (file)
@@ -1,6 +1,6 @@
 /*    cc_runtime.h
  *
- *    Copyright (C) 1999, 2000, 2001, by Larry Wall and others
+ *    Copyright (C) 1999, 2000, 2001, 2004, 2006, 2008 by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -54,6 +54,7 @@
        switch (ret) {                          \
        case 0:                                 \
            PL_op = ppaddr(aTHX);               \
+            cxstack[cxstack_ix].blk_eval.retop = Nullop; \
            if (PL_op != nxt) CALLRUNOPS(aTHX); \
            JMPENV_POP;                         \
            break;                              \
        SPAGAIN;                                \
     } while (0)
 
-
-#define PP_ENTERTRY(jmpbuf,label)  \
+#define PP_ENTERTRY(label)             \
        STMT_START {                    \
-               int ret;                \
-               JMPENV_PUSH_ENV(jmpbuf,ret);                    \
-               switch (ret) {                          \
-                       case 1: JMPENV_POP_ENV(jmpbuf); JMPENV_JUMP(1);\
-                       case 2: JMPENV_POP_ENV(jmpbuf); JMPENV_JUMP(2);\
-                       case 3: JMPENV_POP_ENV(jmpbuf); SPAGAIN; goto label;\
-               }                                       \
+           dJMPENV;                    \
+           int ret;                    \
+           JMPENV_PUSH(ret);           \
+           switch (ret) {              \
+               case 1: JMPENV_POP; JMPENV_JUMP(1);\
+               case 2: JMPENV_POP; JMPENV_JUMP(2);\
+               case 3: JMPENV_POP; SPAGAIN; goto label;\
+           }                                      \
        } STMT_END
+
 #define PP_LEAVETRY \
        STMT_START{ PL_top_env=PL_top_env->je_prev; }STMT_END