Guardian Procedure Calls Reference Manual (G06.25+)

Guardian Procedure Calls (R)
Guardian Procedure Calls Reference Manual522629-013
13-37
READUPDATELOCK[X] Procedures
READUPDATELOCKX is used, the user must call the AWAITIOX procedure to
complete the I/O. If READUPDATELOCK is used, the user may use either
AWAITIO or AWAITIOX to complete the I/O.
If READUPDATELOCK[X] is performed on nondisk files, an error is returned.
Random processing
For key-sequenced, relative, and entry-sequenced files, random processing
implies that a designated record must exist. Therefore, positioning for
READUPDATELOCK[X] is always to the record described by the exact value of the
current key and current-key specifier. If such a record does not exist, the call to
READUPDATELOCK[X] is rejected with file-system error 11.
See “Considerations” for the LOCKREC procedure.
See “Disk File Considerations” for the READUPDATE procedure.
Queue files
To use READUPDATELOCK[X], a queue file must be opened with write access
and with a
sync-or-receive-depth of 0.
Considerations for READUPDATELOCKX Only
The buffer and count transferred may be in the user stack or in an extended data
segment. The buffer and count transferred cannot be in the user code space.
If the buffer or count transferred is in a selectable extended data segment, the
segment must be in use at the time of the call. Flat segments allocated by a
process are always accessible to the process.
If the file is opened for nowait I/O, and the buffer is in an extended data segment,
you cannot deallocate or reduce the size of the extended data segment before the
I/O completes with a call to AWAITIOX or is canceled by a call to CANCEL or
CANCELREQ.
If the file is opened for nowait I/O, you must not modify the buffer before the I/O
completes with a call to AWAITIOX. This also applies to other processes that may
be sharing the segment. It is the application’s responsibility to ensure this.
If the file is opened for nowait I/O, and the I/O has been initiated with these
routines, the I/O must be completed with a call to AWAITIOX (not AWAITIO).
If the file is opened for nowait I/O, a selectable extended data segment containing
the buffer need not be in use at the time of the call to AWAITIOX.
Nowait I/O initiated with these routines may be canceled with a call to CANCEL or
CANCELREQ. The I/O is canceled if the file is closed before the I/O completes or
AWAITIOX is called with a positive time limit and specific file number and the
request times out.