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 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. Κ;– "cedar" style˜code™Kšœ?™?Kšœ5Οk™8K™$—K˜š ˜ Jšœ œ˜Jšœ œ ˜Jšœ œ ˜Jšœœ ˜Jšœœ˜Jšœœ*˜6Jšœœ$˜7Jšœœ˜Jšœœœ˜—K˜K™#K˜KšΡbnx œœ œ˜!K˜Kšœœ˜!K˜Kšœœœ˜Kšœ œ˜!Kšœœœœ˜ Kšœœœ#œ˜@K˜Kšœ œœ˜'KšœœœFœYœ œœœ˜ϊK˜Kšœœ-˜AK˜Kšœ!Οc%˜FKšœ œœ ˜šœ œœ˜Kšœ ˜K˜—K˜KšΟnœœœ˜K˜Kš œŸ œœ3˜[K˜Kš œŸ œœ ˜.K˜Kš   œŸ œœ œ œ˜>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šœ˜—…— ΈΝ