Process: CEDAR DEFINITIONS = BEGIN ConditionPointer: TYPE = POINTER TO Condition; Condition: TYPE = CONDITION; -- The builtin Cedar type; Structure is opaque. MonitorPointer: TYPE = POINTER TO Monitor; Monitor: TYPE = MONITORLOCK; -- The builtin Cedar type; Structure is opaque. InitializeMonitor: UNSAFE PROC [monitor: MonitorPointer]; InitializeCondition: UNSAFE PROC [condition: ConditionPointer, ticks: Ticks]; Ticks: TYPE = CARD32; Milliseconds: TYPE = CARD32; Seconds: TYPE = CARD32; MsecToTicks: PROC [Milliseconds] RETURNS [Ticks]; SecondsToTicks: PROC [Seconds] RETURNS [Ticks]; TicksToMsec: PROC [Ticks] RETURNS [Milliseconds]; SetTimeout: UNSAFE PROC [condition: ConditionPointer, ticks: Ticks]; DisableTimeout: UNSAFE PROC [condition: ConditionPointer]; Detach: PROC [PROCESS]; GetCurrent: PROC RETURNS [PROCESS]; Priority: TYPE = CARD32; priorityIdleProcess: Priority = 0; priorityBackground, priorityClient0: Priority = 1; priorityNormal, priorityClient1: Priority = 2; priorityForeground, priorityClient2: Priority = 3; priorityClient3: Priority = 4; priorityFaultHandlers: Priority = 5; priorityRealTime: Priority = 6; prioritySwatWatcher: Priority = 7; priorityLast: Priority = 7; SetPriority: PROC [p: Priority]; GetPriority: PROC RETURNS [Priority]; Abort: PROC [PROCESS]; CancelAbort: PROC [PROCESS]; AbortPending: PROC [] RETURNS [abortPending: BOOLEAN]; CheckForAbort: PROC; DisableAborts: UNSAFE PROC [pCondition: ConditionPointer]; EnableAborts: UNSAFE PROC [pCondition: ConditionPointer]; Pause: PROC [ticks: Ticks]; PauseMsec: PROC [ms: Milliseconds]; Yield: PROC; ValidateProcess: PROC [PROCESS]; InvalidProcess: READONLY ERROR [process: PROCESS]; END. " Process.mesa Copyright ำ 1985, 1986, 1988, 1989, 1991 by Xerox Corporation. All rights reserved. Carl Hauser, November 22, 1988 11:07:19 am PST Initializing monitors and condition variables Timeouts Timeouts Detaching processes Identity of the currently executing process Priorities of processes Aborts Requests that the indicated process be aborted. The process won't subsequently be aborted for any preceding Abort request. Inquire as to abort requests for current process. Checks for the current process being asked to abort by Abort. Raises ABORTED and cancels the request. Otherwise CheckForAbort is a null operation. Control of Scheduling Process validation CHauser, February 21, 1989: Added CancelAbort. CHauser, March 1, 1989: Changed type of Monitor from opaque to MONITORLOCK; ส€•NewlineDelimiter –(cedarcode) style™codešœ ™ Kšœ ฯeœI™TK™.—K˜˜K˜—šัblnœฯkœŸ ˜KšœŸ˜—headšœ.™.šœŸœŸœŸœ ˜.Kšœ ŸœŸ œฯc/˜L—K˜šœŸœŸœŸœ ˜*Kšœ ŸœŸ œ /˜L—K˜šฯnœŸ œ˜9K˜—šกœŸ œ-˜MK˜——šœ™KšœŸœŸœ˜KšœŸœŸœ˜Kšœ ŸœŸœ˜K˜šก œŸœŸœ ˜1K˜—šกœŸœ Ÿœ ˜/K˜—šก œŸœ Ÿœ˜1K˜——šœ™šก œŸ œ-˜DK˜—KšกœŸ œ Ÿœ˜:—šœ™šกœŸœŸœ˜K˜——šœ+™+šก œŸœŸœŸœ˜#K˜——šœ™Kšœ ŸœŸœ˜K˜Kšœ"˜"Kšœ2˜2Kšœ.˜.Kšœ2˜2Kšœ˜Kšœ$˜$Kšœ˜Kšœ"˜"Kšœ˜K˜šก œŸœ˜ K˜—šก œŸœŸœ ˜%K˜——šœ™šกœŸœŸœ˜Kšœ1™1K˜—šก œŸœŸœ˜KšœJ™JK™—šก œŸœŸœŸœ˜6K™1K˜—šก œŸœ˜KšœFŸœG™”K˜—šก œŸ œ ˜:K˜—šก œŸ œ ˜9K˜——šœ™šกœŸœ˜K˜—šก œŸœ˜#K˜—KšกœŸœ˜ —šœ™KšกœŸœŸœ˜ K˜KšกœŸœ Ÿœ˜2K˜—K˜KšŸœ˜K˜J™.J™KK™—…—ฎ P