<> <> <> <> <> <> DIRECTORY YggEnvironment, YggInternal, YggDummyProcess; YggLockControl: CEDAR DEFINITIONS = BEGIN Initialize: PROC [lockZoneInitialSize: INT, hashArraySize: NAT]; ForkWatchdogProcess: PROC [ wakeupPeriod: YggDummyProcess.Milliseconds, abortWaitingRequestInterval: INT--seconds--, abortInactiveGrantedRequestInterval: INT--seconds--]; <> <> <> <> <> <> ConsTransHeader: PROC [trans: YggInternal.TransHandle] RETURNS [lockHeader: YggInternal.LockTransHeader]; AbortWaitingRequests: PROC [trans: YggInternal.TransHandle]; <> <> UpgradeLocks: PROC [trans: YggInternal.TransHandle]; <> <> <<(intendWrite, ...) lock.>> <> ReleaseLocks: PROC [trans: YggInternal.TransHandle]; <> <> <> TransferLocks: PROC [from, to: YggInternal.TransHandle]; <> <> END. <> <> <<>>