home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
pmos2002.zip
/
DEF
/
FINALEXI.DEF
< prev
next >
Wrap
Text File
|
1996-10-23
|
3KB
|
55 lines
DEFINITION MODULE FinalExit;
(****************************************************************)
(* *)
(* Support for program termination procedures *)
(* *)
(* The facility provided is that the caller can specify any *)
(* number of parameterless procedures to be called when the *)
(* program terminates. This allows each module which needs it *)
(* to have a final cleanup procedure to do things like *)
(* releasing allocated memory, closing open files, etc. The *)
(* termination procedures are called in a last-in first-out *)
(* order, which generally means that the higher-level modules *)
(* are dealt with before lower-level modules (which is usually *)
(* what we want). *)
(* *)
(* Multipass termination processing is supported by allowing *)
(* any termination handler to itself install another handler. *)
(* In such a case the new handler is not executing until the *)
(* current list of waiting handlers is exhausted. Multipass *)
(* processing is needed when, for example, part of a module *)
(* shutdown cannot be completed until it is guaranteed that *)
(* all multitasking has ceased. *)
(* *)
(* Programmer: P. Moylan *)
(* Last edited: 23 October 1996 *)
(* Status: OK *)
(* *)
(****************************************************************)
PROCEDURE SetTerminationProcedure (TP: PROC);
(* Adds TP to the list of procedures which will be called just *)
(* before program termination. The list is ordered such that the *)
(* last procedure added will be the first one called. Exception: *)
(* if termination is already in progress when this procedure is *)
(* called, then TP will not be called until all of the existing *)
(* termination procedures have been called. This rule permits *)
(* multi-pass termination processing, where necessary, by letting *)
(* termination procedures themselves install more termination *)
(* procedures. *)
PROCEDURE Crash (message: ARRAY OF CHAR);
(* Terminates the program with an error report. *)
PROCEDURE TerminationMessage (VAR (*OUT*) message: ARRAY OF CHAR): BOOLEAN;
(* Returns the message supplied by the caller of the Crash *)
(* procedure. The function result is TRUE if such a message *)
(* exists, and FALSE if Crash was never called. *)
END FinalExit.