rock_util - Resource Lock UtilitiesThe Resource Lock Utilities provide a high-level interface to the VMS Lock Management facility.
Exclusive locking of a resource is as simple as:
void *lock ;
...
-- Create null lock on resource.
rock_create ("resourceName", NULL, &lock) ;
-- Get and hold exclusive access to resource.
rock_hold (lock, NULL, NULL) ;
...
... perform processing of resource ...
...
-- Release hold on resource.
rock_release (lock, NULL, NULL) ;
...
The ROCK_UTIL package also provides for more sophisticated types of locking, including support for non-blocking locking (I'm a poet!) using completion ASTs, the relinquishing of locks by blocking ASTs, and lock value blocks.
rock_create() - creates a resource lock.
rock_delete() - deletes a resource lock.
rock_hold() - requests a more privileged lock on a resource.
rock_id() - returns the system ID for a resource lock.
rock_query() - returns information about a resource lock.
rock_release() - requests a less privileged lock on a resource.
rock_resource() - returns the name of the resource
associated with a lock.
rock_util.c
rock_util.h