Holds a lock in shared mode while executing a body of code.
with-sharing-lock (sharing-lock &optional whostate timeout) &body body => results
A sharing lock.
The status of the process while sharing-lock is locked, as seen in the Process Browser.
The forms to execute
The values returned from evaluating body.
with-sharing-lock is like with-lock, but sharing-lock must be a "sharing" lock and will be locked in shared mode. That means that other threads can also lock it in shared mode.
with-sharing-lock waits for sharing-lock to be free of any exclusive lock, but it does not check for other shared mode use of the same lock.
It is possible to lock for sharing inside the scope of sharing lock and inside the scope of an exclusive lock.
LispWorks User Guide and Reference Manual - 20 Sep 2017