DEFINITION MODULE Locks; (* * ModBase * Release 3.0 * (c) Copyright 1991 John McMonagle * P.O. Box 8402 * Green Bay WI 54308 * All Rights Reserved * *) FROM StringIO IMPORT ErrorMessage; FROM ErrorManager IMPORT AConfirmProc; IMPORT SYSTEM; TYPE RangeRec = RECORD FileOffset : LONGINT; RangeLength: LONGINT; END; Range =POINTER TO RangeRec; VAR AbortRetryIgnore:AConfirmProc; ExclusiveOnly:BOOLEAN; PROCEDURE Lock(FileHandle : CARDINAL; range:RangeRec) : ErrorMessage; PROCEDURE LockRetry(FileHandle : CARDINAL; range:RangeRec; Retries:CARDINAL; VAR FileName:ARRAY OF CHAR) : ErrorMessage; PROCEDURE UnLock(FileHandle : CARDINAL; range:RangeRec) : ErrorMessage; PROCEDURE LockFile(FileHandle : CARDINAL) : ErrorMessage; PROCEDURE LockFileRetry(FileHandle : CARDINAL; Retries:CARDINAL; VAR FileName:ARRAY OF CHAR) : ErrorMessage; PROCEDURE UnLockFile(FileHandle : CARDINAL) : ErrorMessage; (* used to pause between retries should give give control to the operating system if possible *) PROCEDURE Pause(Msec:CARDINAL); PROCEDURE NoLocking(handle:CARDINAL):BOOLEAN; PROCEDURE ReadRetry(FileHandle : CARDINAL; ptr : SYSTEM.ADDRESS; size,Retries : CARDINAL;VAR FileName:ARRAY OF CHAR) : CARDINAL; END Locks.