FLOCK [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation
MPE/iX Intrinsics Reference Manual
FLOCK
NM and CM callable.
Dynamically locks a file. If dynamically locking more than one RIN,
multiple RIN (MR) capability is required.
Syntax
_____________________________________
| |
| I16V U16V |
| FLOCK(filenum,lockflag); |
_____________________________________
Parameters
filenum 16-bit signed integer by value (required)
Passes the file number of the file whose global
resource identification number (RIN) is to be
locked.
lockflag 16-bit unsigned integer by value (required)
Specify either conditional or unconditional locking
by setting bit (15:1) as follows:
Value Meaning
0 Locking takes place only if the flock_semaphore of the
global unique file descripter (gufd) is used to
control access to the file. If the RIN is locked,
control returns immediately to the calling process,
with condition code CCG (0).
1 Locking takes place unconditionally. If the file
cannot be locked immediately, the calling process
suspends until the file can be locked.
Condition Codes
The following condition codes are possible when lockflag bit (15:1)=1:
CCE (2) Request granted.
CCG (0) Not returned.
CCL (1) Request denied. This file was not opened with the
dynamic locking aoption bit (10:1) specified in the
FOPEN/HPFOPEN intrinsic, or there was an attempt to
lock more than one RIN and the calling process does
not have multiple RIN (MR) capability.
The following condition codes are possible when lockflag bit (15:1)=0:
CCE (2) Request granted.
CCG (0) Request denied. The file was locked by another
process.
CCL (1) Request denied. This file was not opened with the
dynamic locking aoption bit (10:1) specified in the
FOPEN/HPFOPEN intrinsic, or there was an attempt to
lock more than one RIN and the calling process does
not have multiple RIN (MR) capability.
Operation Notes
On MPE/iX when a file is created (opened as a new file) with dynamic
locking only one accessor (the creator) is allowed. A subsequent call to
FLOCK against such a file (although unnessary) will succeed because the
dynamic locking bit is not set to zero. On MPE V, when a new file is
created with dynamic locking the the dynamic locking bit is set to zero.
For this reason, a subsequent call to FLOCK will fail on MPE V.
Accessors that have opened a file with the dynamic locking option enabled
must access the file through the FLOCK intrinsic to gain exclusive access
to the file. Since the use of this intrinsic is discretionary, however,
all accessors must agree to use FLOCK when writing to a file to guarantee
exclusive access. File locking is advised, but is not mandated by
MPE/iX.
Related Information
Intrinsics None
Commands None
Manuals Resource Management Programmer's Guide
(32650-90024)
MPE/iX 5.0 Documentation