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
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];
For stuff inside the Basic monitor.
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.