nr@atomic.Princeton.EDU (Norman Ramsey) (04/03/91)
The current RTMisc interface handles ``cleanup on exit'' as follows: TYPE Exitor <: REFANY; PROCEDURE RegisterExitor (p: PROCEDURE (n: INTEGER)): Exitor; (* Registers the procedure p to be executed when Exit is called; it is passed the argument of Exit. The registered procedures are executed in the reverse order. *) PROCEDURE UnregisterExitor (e: Exitor); (* removes e's procedure from the registered set. *) PROCEDURE Exit (n: INTEGER); (* call the registered exitors and terminate the program with status 'n' *) I propose the following change, to make it possible for exitors to have more state: TYPE Exitor <: REFANY; TYPE ExitorClosure = OBJECT METHODS apply(n:INTEGER); END; PROCEDURE RegisterExitor (p: ExitorClosure): Exitor; (* Registers the procedure p to be executed when Exit is called; it is passed the argument of Exit. The registered procedures are executed in the reverse order. *) PROCEDURE UnregisterExitor (e: Exitor); (* removes e's procedure from the registered set. *) PROCEDURE Exit (n: INTEGER); (* call the registered exitors and terminate the program with status 'n' *) Comments? -- Norman Ramsey nr@princeton.edu