<> <> <> <> <> <> <> <> <> DIRECTORY YggEnvironment USING [Outcome, TransID, nullTransID], YggImport USING [Handle, nullHandle], YggInternal USING [Difficulty, LockTransHeader, LogRecordID, nullLogRecordID, OpenDoc, WorkerOutcome, WorkLevel], BasicTime USING [GMT], YggDummyProcess USING [Milliseconds], YggDummyRPC USING [ConversationID]; YggWorker: DEFINITIONS = BEGIN State: TYPE = { unknown, active, preparing, ready, completing, fpmComplete, fpmCompleteBeingForcedOut, complete }; StateDuringRecovery: TYPE = { active, ready, committed, aborted }; Outcome: TYPE = YggEnvironment.Outcome --{abort, commit, unknown}--; Object: TYPE = MONITORED RECORD [ transID: YggEnvironment.TransID _ YggEnvironment.nullTransID, --immutable-- beginRecord: YggInternal.LogRecordID _ YggInternal.nullLogRecordID, --immutable-- coordinator: YggImport.Handle _ YggImport.nullHandle, --immutable-- locks: YggInternal.LockTransHeader _ NIL, --immutable-- coordinatorIsRemote: BOOL _ TRUE, state: State _ unknown, --increases monotonically to complete-- outcome: Outcome _ unknown, --changes during state transition ready -> completing-- allowableDifficulty: Difficulty _ hard, < normal -> zero during preparing or completing state.>> <> <> nStarts: [0..maxStarts] _ 0, <> <> stateDuringRecovery: StateDuringRecovery _ active, <> timeOfLastStartWork: BasicTime.GMT, <