sharable-lock-unlock

The value returned is nil or one of the
keywords :unlocked
or :recursive.

The mode argument must be one of the
keywords :shared or :exclusive.

If the lock is locked in the specifed mode, the locker count is
decremented. If the count is still not zero, the
keyword :recursive is returned. If the count is
zero, the keyword :unlocked is returned.

If the lock is not locked, and safe-p (when the
lock was created with make-sharable-lock)
is nil,
nil is returned.