From: ceriel Date: Wed, 27 Apr 1988 18:11:33 +0000 (+0000) Subject: improved trap handling X-Git-Tag: release-5-5~3307 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=673679e5eb3ad2a90d1fd0c0e4d18f00283e9bdf;p=ack.git improved trap handling --- diff --git a/lang/m2/libm2/Traps.def b/lang/m2/libm2/Traps.def index 3c380f831..5b010c652 100644 --- a/lang/m2/libm2/Traps.def +++ b/lang/m2/libm2/Traps.def @@ -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); diff --git a/lang/m2/libm2/head_m2.e b/lang/m2/libm2/head_m2.e index 6e4c02d4f..c2a77a45a 100644 --- a/lang/m2/libm2/head_m2.e +++ b/lang/m2/libm2/head_m2.e @@ -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