with-lock-held (lock &key timeout) declaration* forms* => results
Arguments and values:
lock -> a lock object.
timeout -> a non-negative real number.
declaration -> a declare expression; not evaluated.
forms -> an implicit progn.
results -> the values returned by the forms.
forms. Before the forms in BODY are evaluated,
acquired as if by using acquire-lock. After
the forms have been evaluated, or if a non-local control transfer is
caused (e.g. by
signal), the lock is released as if by
If the debugger is entered, it is unspecified whether the lock is released at debugger entry or at debugger exit when execution is restarted.