13.8 SYS$ACQUIRE_GALAXY_LOCK This service is used to acquire ownership of a galaxy lock. If the lock is free, the caller becomes the owner and control re- turns immediately. If the lock is owned, based on the input flags and the timeout value, either the caller will wait or an error will be returned. The default behavior when an attempt is made to acquire a lock that is owned, is to spin for 10 microseconds and then to wait. If a wait timeout value was specified in the call, it is used. Otherwise the timeout value set in the lock by SYS$CREATE_GALAXY_LOCK or SYS$INIT_GALAXY_ LOCK will be used. This behavior can be changed with the input flags. If just GLOCK$C_NOSPIN is specified and the lock is owned, no spin will be done. If just GLOCK$C_NOWAIT is specified and the lock is owned, the caller will only spin on the lock. If a time- out value is specified in the call, it is used as the spin time. Otherwise, the caller will spin for 10 microseconds. If the lock does not become available during the spin, the lock is not acquired and SS$_NOWAIT is returned. If both GLOCK$C_NOSPIN and GLOCK$C_NOWAIT are specified and the lock is owned, control returns immediately. The lock is not acquired and SS$_NOWAIT is returned. Due to system events such a galaxy instance shutting down, a lock may become owned by a non-existent entity. If this occurs, the default behavior of SYS$ACQUIRE_GALAXY_ LOCK is to break the old lock ownership. The caller be- comes the new owner and the service returns SS$_BROKEN. If GLOCK$C_NOBREAK is specified, SYS$ACQUIRE_ GALAXY_LOCK will not break the lock ownership and returns SS$_NOBREAK. sys$acquire_galaxy_lock(handle, timeout, flags) size parameter (bytes) type usage handle 8 input by value galaxy lock handle timeout 4 input by value wait time- out (overrides default) flags 4 input by value GLOCK$C_ NOWAIT GLOCK$C_ NOSPIN GLOCK$C_ NOBREAK Return status: SS$_BADPARAM SS$_BROKEN SS$_IVLOCKID SS$_IVLOCKOP SS$_IVLOCKTBL SS$_LOCK_TIMEOUT SS$_NOBREAK SS$_NOWAIT SS$_NORMAL