Open System Services System Calls Reference Manual (G06.28+)
System Functions (s and S) SPT_LOCKFILE(2)
Locking modes
Default mode If the file is already locked by another user when
SPT_LOCKFILE() is called, the process requesting the lock is
suspended and queued in a locking queue behind other users try-
ing to access the file. When the file becomes unlocked, the user
at the head of the locking queue is granted access to the file. If
the user at the head of the locking queue is requesting a lock, it
is granted the lock and resumes execution. If the user at the
head of the locking queue is requesting a read, the read opera-
tion continues to completion.
Alternate mode If the file is already locked by another user when the call to
SPT_LOCKFILE() is made, the lock request is rejected, and
the call to SPT_LOCKFILE() completes immediately with
Guardian file-system error 73 (file is locked). The alter-
nate locking mode is specified by calling the
SPT_SETMODE() procedure and specifying function 4.
Locks and open files (applies to nonaudited files only)
Locks are granted on a file open (that is, on a file number) basis. Therefore, if a
process has multiple opens of the same file, a lock of one file number excludes
access to the file through other file numbers.
Attempting to read a locked file in default locking mode
If the default locking mode is in effect when a call to SPT_READX( ) or
SPT_READUPDATEX() is made for a file which is locked by another user, the
caller of SPT_READX() or SPT_READUPDATEX() is suspended and queued
in the locking queue behind other users attempting to access the file.
For nonaudited files, a deadlock condition (a permanent suspension of your
application) occurs if SPT_READX() or SPT_READUPDATEX() is called by
the process which has a record locked with a file number other than that supplied
in the SPT_READX() or SPT_READUPDATEX() call. (See the
SPT_FILE_OPEN_(2) reference page either online or in the Open System Ser-
vices System Calls Reference Manual for an explanation of multiple opens by
the same process.)
Accessing a locked file
If the file is locked by a user other than the caller at the time of the call, the call
is rejected with Guardian file-system error 73 (file is locked) when:
SPT_READX( ) or SPT_READUPDATEX() is called, and the alternate lock-
ing mode is in effect.
SPT_WRITEX(), WRITEUPDATE, or SPT_CONTROL( ) is called.
A count of the locks in effect is not maintained. Multiple locks can be unlocked with one call to
SPT_UNLOCKFILE().
Use on OSS Objects
This procedure operates only on Guardian objects. If an OSS file is specified, Guardian file-
system error 2 occurs.
527186-005 Hewlett-Packard Company 7−201