improved trap handling
authorceriel <none@none>
Wed, 27 Apr 1988 18:11:33 +0000 (18:11 +0000)
committerceriel <none@none>
Wed, 27 Apr 1988 18:11:33 +0000 (18:11 +0000)
lang/m2/libm2/Traps.def
lang/m2/libm2/head_m2.e

index 3c380f8..5b010c6 100644 (file)
@@ -23,6 +23,8 @@ DEFINITION MODULE Traps;
   PROCEDURE InstallTrapHandler(t: TrapHandler): TrapHandler;
   (* Install a new trap handler, and return the previous one.
      Parameter of trap handler is the trap number.
+     When a trap occurs, the default trap handler is re-installed before
+     calling the new handler.
   *)
 
   PROCEDURE Message(str: ARRAY OF CHAR);
index 6e4c02d..c2a77a4 100644 (file)
@@ -92,12 +92,14 @@ mainroutine
  end
 
  pro $trap_handler,0
+ lpi $trap_handler
+ sig
  lol 0 ; trap number
  lae handler
  loi EM_PSIZE
+ lpi $catch
+ sti EM_PSIZE
  cai
- lpi $trap_handler
- sig
  asp EM_PSIZE+EM_WSIZE
  rtt
  end 0