Previous attempt to implement a mechanism to restore the signal mask
authorChris Hanson <org/chris-hanson/cph>
Fri, 15 Sep 1995 05:51:12 +0000 (05:51 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 15 Sep 1995 05:51:12 +0000 (05:51 +0000)
when aborting to the interpreter was flawed: the signal mask was saved
once, restored on the first abort, and left unchanged after that.
The flaw is repaired by re-saving the signal mask after every abort.

v7/src/microcode/interp.c
v8/src/microcode/interp.c

index 559c62281f4c31b3ea04035f95b7301e46f24cc9..5bfb157a614d61a35ced29bbd5ad7d0a51ef17c4 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: interp.c,v 9.84 1994/06/02 19:13:16 cph Exp $
+$Id: interp.c,v 9.85 1995/09/15 05:51:12 cph Exp $
 
 Copyright (c) 1988-94 Massachusetts Institute of Technology
 
@@ -462,8 +462,8 @@ DEFUN (Interpret, (pop_return_p), Boolean pop_return_p)
    */
 
   bind_interpreter_state (&new_state);
-  preserve_signal_mask ();
   Which_Way = (setjmp (interpreter_catch_env));
+  preserve_signal_mask ();
   Set_Time_Zone (Zone_Working);
   Import_Registers ();
 \f
index cf60b7dc8baafc101b8fcb8ebafd555945fe3a7f..7067006d06548840af62419f6d7c2e5212b941f0 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: interp.c,v 9.86 1995/07/26 23:38:51 adams Exp $
+$Id: interp.c,v 9.87 1995/09/15 05:48:48 cph Exp $
 
 Copyright (c) 1988-1995 Massachusetts Institute of Technology
 
@@ -462,8 +462,8 @@ DEFUN (Interpret, (pop_return_p), Boolean pop_return_p)
    */
 
   bind_interpreter_state (&new_state);
-  preserve_signal_mask ();
   Which_Way = (setjmp (interpreter_catch_env));
+  preserve_signal_mask ();
   Set_Time_Zone (Zone_Working);
   Import_Registers ();
 \f