Locks a lock for the current process.
A lock.
The status of the current Lisp process, before process-lock
returns, that is, the status while the current process is waiting to timeout. This can be seen in the Process Browser.
A timeout interval, in seconds. If this is nil
(the default), process-lock
waits until lock can be locked by the current Lisp process. A process can lock a lock more than once.
The function process-lock
attempts to lock lock and returns t
if successful, or nil
if timed out.
If lock is already locked and its owner is the value of *current-process*, then the value of recursivep in the lock (see make-lock) controls what happens. If recursivep is true, then lock remains locked and an internal count is incremented (this is called recursive locking). Otherwise, an error is signaled.
The Lisp process sleeps until the lock can be locked or the timeout period specified by timeout expires.
result is t
if lock was successfully locked, and nil
otherwise.
process-lock
is guaranteed to return if it locked process, but may throw before locking, as described in Guarantees and limitations when locking and unlocking.
LispWorks User Guide and Reference Manual - 20 Sep 2017