DIRECTORY BasicTime USING [], CedarProcess USING [Process], Commander USING [Handle], IO USING [Value], List USING [], MakeDo USING [ForkParms, ModifiabilitySpec, RefTable], MakeDoPrivate USING [Action, ExpensiveBool, Job, Node], RefTab USING [Ref], Rope USING [ROPE]; MakeDoBasics: CEDAR DEFINITIONS = BEGIN OPEN MakeDo, MakeDoPrivate; ROPE: TYPE = Rope.ROPE; RefTable: TYPE = MakeDo.RefTable; ExecutionViewer: TYPE = REF ANY; JobResources: TYPE ~ REF JobResourcesRep; JobResourcesRep: TYPE; Execution: TYPE = REF ExecutionPrivate; ExecutionPrivate: TYPE = RECORD [job: Job, a: Action, goal: Node, bch, ch: Commander.Handle, forked: BOOL, resources: JobResources, es: ExecutionState ¬ initial, process: CedarProcess.Process ¬ NIL, gushMe: BOOL ¬ FALSE, view: ExecutionViewer ¬ NIL]; ExecutionState: TYPE ~ {initial, buffered, doing, ending, final}; processToExecution: RefTab.Ref; -- from ProcRef's into Execution's -- ProcRef: TYPE ~ REF ProcRefRep; ProcRefRep: TYPE ~ RECORD [ process: PROCESS ]; DoIn: PROC [PROC]; InnerSetModifiability: --INTERNAL-- PROC [n: Node, goals: RefTable, ms: ModifiabilitySpec]; InnerGetProduced: --INTERNAL-- PROC [n: Node]; InnerLeaf: --INTERNAL-- PROC [n: Node] RETURNS [isLeaf: BOOL]; SetBroken: --INTERNAL-- PROC [n: Node, broken: BOOL]; InnerRederive: --INTERNAL-- PROC [a: Action]; InnerUnknowFails: --INTERNAL-- PROC [a: Action]; SetCurrency: --INTERNAL-- PROC [n: Node, current: ExpensiveBool]; StatelessEnumerateRefTable: PROC [table: RefTable, EachNode: PROC [REF ANY] RETURNS [stop: BOOL ¬ FALSE]]; InnerSuspectNodeChange: --INTERNAL-- PROC [n: Node]; CheckIn: --ENTRY-- PROC [job: Job, goal: Node, producer: Action, process: CedarProcess.Process]; EndFork: --ENTRY-- PROC [resources: JobResources]; RecordAFork: PROC [JobResources]; ShouldFork: PROC [] RETURNS [fork: BOOL, valid: BOOL ¬ FALSE, resources: JobResources ¬ NIL]; InnerGetForkParms: -- ENTRY -- PROC RETURNS [ForkParms]; InnerSetForkParms: -- ENTRY -- PROC [ForkParms]; SetES: PROC [e: Execution, es: ExecutionState]; NeedToFinish: PROC [e: Execution] RETURNS [BOOL]; Msg: PROC [ch: Commander.Handle, format: ROPE, v1, v2, v3, v4, v5: IO.Value ¬ [null[]]]; Buffer: PROC [e: Execution]; Flush: PROC [e: Execution, long, abandon: BOOL, asRope: ROPE]; DestroyAuxBox: PROC; AuxBoxDestroyed: PROC RETURNS [BOOL]; Reporter: TYPE ~ REF ReporterRep; ReporterRep: TYPE ~ RECORD [ destroyAuxBox: PROC, auxBoxDestroyed: PROC RETURNS [BOOL], buffer: PROC [e: Execution], msg: PROC [ch: Commander.Handle, format: ROPE, v1, v2, v3, v4, v5: IO.Value ¬ [null[]]], flush: PROC [e: Execution, long, abandon: BOOL, asRope: ROPE] ]; RegisterReporter: PROC [key: ATOM, reporter: Reporter]; defaultReporter: READONLY ROPE; END.  MakeDoBasics.Mesa Copyright Σ 1991 by Xerox Corporation. All rights reserved. Last tweaked by Mike Spreitzer on April 26, 1990 9:15:30 am PDT Eduardo Pelegri-Llopart November 17, 1988 4:54:24 pm PST JKF January 11, 1989 10:20:16 am PST For stuff inside the Basic monitor. Κ_–(cedarcode) style•NewlineDelimiter ™code™Kšœ Οeœ1™K˜Kš‘ œ  œžœžœ˜5K˜Kš‘ œ  œžœ ˜-K˜Kš‘œ  œžœ ˜0K˜Kš‘ œ  œžœ#˜AK˜Kš‘œžœ‘œžœžœžœžœžœžœ˜jK˜Kš‘œ  œžœ ˜4Kš‘œ  œžœI˜`Kš‘œ  œžœ˜2K˜Kš‘ œžœ˜!Kš‘ œžœžœžœ žœžœžœ˜]K˜Kš‘œ  œžœžœ ˜8Kš‘œ  œžœ ˜0K˜Kš‘œžœ$˜/Kš‘ œžœžœžœ˜1K˜Kš‘œžœ žœžœ˜XK˜Kš‘œžœ˜Kš‘œžœžœ žœ˜>K˜Kš‘ œžœ˜Kš‘œžœžœžœ˜%K˜Kšœ žœžœ ˜!šœ žœžœ˜Kšœžœ˜Kšœžœžœžœ˜%Kšœžœ˜Kšœžœ žœžœ˜XKšœžœžœ žœ˜=K˜K˜—Kš‘œžœžœ˜7K˜Kšœžœžœ˜Kšžœ˜—…— Ά-