Superlock Release Notes
Superlock Release Notes
Version 3.1
Superlock is a program to call the lock manager from DCL. It allows the
user to synchronize commands in command procedures in the same way that
the $ENQ/$DEQ system services synchronize program code. It does this by
acquiring and releasing locks in Supervisor mode (hence the name).
Supervisor mode locks remain granted after image rundown, and are only
released either by explicit calls to Superlock, or when the process
runs down.
2023-11-17 The information in this document is subject to change
without notice and should not be construed as a commitment by anyone.
The software described in this document is provided as is. No guarantee
is made to the suitability, reliability, security, usefulness,
performance or good taste of this software.
No liability is accepted for any use or misuse of the product.
Availability: Superlock may be distributed provided no
alteration is made to the copyright notice in this documentation or in
program sources. All rights are reserved.
Copyright ©2023 Tom Wade
Chapter 1
Release Notes for V3.0 & V3.1
1.1 V3.1
There is only one functional change for V3.1: support for OpenVMS X86.
This was tested on V9.2.
1.2 Functional Enhancements for V3.0
1.2.1 Support for Extended Lock Value Block
Superlock now supports the extended size for the Lock Value Block.
Prior to OpenVMS 8.2, the lock value block was limited to 16 bytes.
With OpenVMS 8.2, the size of the lock value block defaults to 16
bytes, but can be extended to 64 bytes using the LCK$M_XVALBLK bit in
the $ENQ system service. Superlock implements this with an /EXTEND
qualifier to the LOCK command.
1.2.2 Support for Reporting Blocking Processes
When a lock can't be granted, Superlock now allows you to obtain a list
of processes that are blocking the lock. This information is returned
in DCL symbols if the /REPORT qualifier is specified.
1.2.3 Editing of Lock Value Block symbol
When copying a lock value block to or from the DCL symbol referenced in
a /VALUE qualifier, Superlock now provides the /PAD and /TRIM
qualifiers for additional formatting in respect to padding or trimming
nulls or spaces.
1.2.4 Support for Timeout on Lock Request
A new qualifier /TIMEOUT allows you to specify a timeout value for lock
requests. If the timeout period expires without the lock's being
granted, Superlock will exit with the DCL status SS$_TIMEOUT.
1.2.5 Optional returning of Immediate Lock Grant
Superlock now provides access to the LCK$M_SYNCSTS flag for the $ENQ
system service. This bit is set with the /SYNC qualifier. If the lock
can be granted immediately, Superlock returns an alternative status
SS$_SYNCH, otherwise it returns SS$_NORMAL.
1.2.6 Release of Sublocks
With Superlock 3.0, you can now release all sublocks of a parent lock
by the use of the /SUBLOCK qualifier in combination with /RELEASE.
Prior versions required you to release them individually.
1.2.7 Optional Suppression of some Error Messages
Superlock provides a /NOLOG qualifier to suppress the reporting of
certain DCL errors, allowing you to test for and process such
conditions in the surrounding DCL code, without presenting the error
messages to the user.
1.3 Bug Fixes
1.3.1 Bug in String Comparison
Fixed a bug in the string comparison routine, which would cause
Superlock to fail with an error message with a /WRITE /ALLOW=READ
qualifier combination.