#include<nwfile.h> or #include<nwcalls.h>NWCCODE N_API NWLockLogicalRecordSet (nuint8 lockFlags, nuint16 timeOut);
Applications define logical record names. A logical record name represents a group of files, physical records, or data structures. NWLogLogicalRecord and NWLockLogicalRecordSet affect one or more logical record names, not the actual files, physical records, or data structures associated with each logical record name. Any uncooperative application can ignore a lock on the logical record name and directly lock physical files or records. Therefore, applications using logical record locks must not simultaneously use other locking techniques.
To avoid deadlock, request the resources needed to lock by making an entry in the File Log Table at the NetWare server. Once the log table is complete, the application attempts to lock those records. The locking works only if all records in the table are available. If some of the logged resources cannot be locked, the lock fails and none of the resources are locked.
A logical record is simply a name (a string) registered with the NetWare server. The name (as with a semaphore) can then be locked or unlocked by applications and can be used as an inter-application locking mechanism.
lockFlags is interpreted as follows:
0x00 Lock record with a shareable lock 0x01 Lock record with an exclusive loctimeOut is specified in units of 1/18 second (0 = no wait).
In DOS and Windows, all access to the network is blocked during any timeout period. For this reason, timeouts should be kept to an absolute minimum---a value of 18 or less. (Even though DOS is mono-tasking, the application may be running in a DOSBOX under Windows Enhanced Mode.)
Synchronization