final void unlock(_LockOwner locker, _Lock lock) { LockHT ht = getLockHT(lock.mHashCode); ht.acquireExclusive(); try { lock.unlock(locker, ht); } catch (Throwable e) { ht.releaseExclusive(); throw e; } }
final void unlock(_LockOwner locker, _Lock lock) { LockHT ht = getLockHT(lock.mHashCode); ht.acquireExclusive(); try { lock.unlock(locker, ht); } catch (Throwable e) { ht.releaseExclusive(); throw e; } }
final void unlock(_LockOwner locker, _Lock lock) { LockHT ht = getLockHT(lock.mHashCode); ht.acquireExclusive(); try { if (lock.unlock(locker, ht)) { ht.remove(lock); } } finally { ht.releaseExclusive(); } }
unlock(locker, ht);
if (unlock(locker, null)) { ht.remove(this);
unlock(locker, ht);