Unlocks the set of locks represented by the
token
parameter.
If the locks were locked multiple times reentrantly, this method decrements the
lock hold counts by one and then "freezes" the locks so that:
- the locks can no longer be refreshed
- the locks cannot be converted to grants (by
any existing
HeldLocksToken)
- the locks's hold counts cannot be
incremented
Locks become "unfrozen" once their hold counts drop all the
way to zero and they are not being held by any clients.
If the locks
held by
token were not locked reentrantly, then this method is
equivalent to
#unlock(HeldLocksToken) except for error
conditions. Call this method against write locks only. The
lock client for
token cannot be anonymous.
Note that it is possible for a
HeldLocksToken to contain both
frozen and unfrozen locks. These lock tokens cannot be refreshed.