Locks a lock for the current process.
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.
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.
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