DIRECTORY BasicTime, Commander, CommanderSys, PreDebug, Process, Rope, SafeStorage, Termination, UnixEnviron; CommanderSysPImpl: CEDAR PROGRAM IMPORTS BasicTime, Commander, PreDebug, Process, SafeStorage, Termination, UnixEnviron EXPORTS CommanderSys ~ BEGIN OPEN CommanderSys, Rope; ExtendedNow: PUBLIC PROC RETURNS [EGMT] = { now: BasicTime.ExtendedGMT = BasicTime.ExtendedNow[]; RETURN [[now.gmt, now.usecs]] }; GetEnv: PUBLIC PROC [key: ROPE] RETURNS [ROPE] = { RETURN [UnixEnviron.GetEnv[key]] }; CurrentProcess: PUBLIC PROC RETURNS [PROCESS] = { RETURN [Process.GetCurrent[]]; }; AbortProcess: PUBLIC PROC [process: PROCESS] = TRUSTED { Process.Abort[process]; }; UNCAUGHTProtect: PUBLIC PROC [inner: PROC, rejectP: PROC [ROPE] RETURNS [BOOL]] RETURNS [ok: BOOL ¬ TRUE] = { RETURN [PreDebug.Protect[inner, rejectP]] }; ExitWorldCommand: Commander.CommandProc = { Termination.QuitWorld[userMsg: cmd.commandLine, interceptable: FALSE]; RETURN[NIL, NIL]; }; InterceptTerminationCommand: Commander.CommandProc = { Termination.SetDebuggingMode[]; RETURN[NIL, NIL]; }; GCollect: Commander.CommandProc = { SafeStorage.ReclaimCollectibleObjects[]; RETURN[NIL, NIL]; }; Commander.Register[key: "ExitWorld", proc: ExitWorldCommand, doc: "Exit the PCR world", clientData: NIL]; Commander.Register[key: "ExitWorld!", proc: ExitWorldCommand, doc: "Same as ExitWorld, defeats command abbreviation danger", clientData: NIL]; Commander.Register[key: "GCollect", proc: GCollect, doc: "force a garbage collect", clientData: NIL]; END. ” CommanderSysPImpl.mesa Copyright Σ 1990, 1991, 1992, 1993 by Xerox Corporation. All rights reserved. Michael Plass, February 18, 1992 4:44 pm PST JKF, March 2, 1990 3:51:36 pm PST Christian Jacobi, July 24, 1990 3:14 pm PDT Willie-s, January 15, 1993 5:32 pm PST To allow packaged worlds to quit pcr cleanly To allow interception of interceptable termination to help packaged world performance Κk•NewlineDelimiter –(cedarcode) style™codešœ™Kšœ ΟeœC™NK™,K™!K™+K™&K™—KšΟk œd˜mK˜KšΟnœžœž˜ KšžœO˜VKšžœ ˜šœžœžœ˜ K˜K˜š Ÿ œžœžœžœžœ˜+Kšœ5˜5Kšžœ˜Kšœ˜K˜—š Ÿœžœžœžœžœžœ˜2Kšžœ˜ Kšœ˜K˜—š Ÿœžœžœžœžœ˜1Kšžœ˜Kšœ˜K˜—š Ÿ œžœžœ žœžœ˜8Kšœ˜Kšœ˜K˜—šŸœžœžœ žœ žœžœžœžœžœžœžœ˜mKšžœ#˜)Kšœ˜K˜—™,šŸœ˜+Kšœ?žœ˜FKšžœžœžœ˜K˜——™2šŸœ˜6Kšœ˜Kšžœžœžœ˜K˜——K™šœ"™"šŸœ˜#Kšœ(˜(Kšžœžœžœ˜K˜——K˜Kšœdžœ˜iKšœ‰žœ˜ŽKšœ`žœ˜e—K˜Kšžœ˜K˜—…—ώ ύ