<<>> <> <> <> <<>> DIRECTORY ViewerErrors; ViewerErrorsImpl: CEDAR MONITOR EXPORTS ViewerErrors ~ BEGIN OPEN ViewerErrors; RegistrationPair: TYPE = RECORD [signalOrError: SIGANY, handle: PreCatchProc]; registrations: LIST OF RegistrationPair ¬ NIL; Register: PUBLIC ENTRY PROC [signalOrError: SIGANY, handle: PreCatchProc] = { registrations ¬ CONS[[signalOrError, handle], registrations]; }; Query: PUBLIC PROC [signalOrError: SIGANY] RETURNS [continue: BOOL ¬ FALSE] = { FOR l: LIST OF RegistrationPair ¬ registrations, l.rest WHILE l#NIL DO IF l.first.signalOrError=signalOrError THEN RETURN [l.first.handle[signalOrError]] ENDLOOP }; END.