checks whether anyone is using the block lock for the given block id , returning the lock to the lock pool if it is unused . concode_field_sep Map<Long,LockRecord> mLockIdToRecordMap concode_elem_sep Map<Long,Set<Long>> mSessionIdToLockIdsMap concode_elem_sep Object mSharedMapsLock concode_elem_sep AtomicLong LOCK_ID_GEN concode_elem_sep long mSessionId concode_elem_sep long mBlockId concode_elem_sep Lock mLock concode_elem_sep Logger LOG concode_elem_sep Map<Long,ClientRWLock> mLocks concode_elem_sep ResourcePool<ClientRWLock> mLockPool concode_field_sep void unlockBlock concode_elem_sep void unlockBlock concode_elem_sep ClientRWLock createNewResource concode_elem_sep void unlock concode_elem_sep Lock getLock concode_elem_sep ClientRWLock getBlockLock concode_elem_sep void validateLock concode_elem_sep long getBlockId concode_elem_sep long lockBlock concode_elem_sep void cleanupSession concode_elem_sep Set<Long> getLockedBlocks concode_elem_sep long getSessionId concode_elem_sep void close concode_elem_sep void validate
void function ( long arg0 ) { synchronized ( mSharedMapsLock ) { ClientRWLock loc0 = mLocks . get ( arg0 ) ; if ( loc0 == null ) { return ; } if ( loc0 . dropReference ( ) == 0 ) { mLocks . remove ( arg0 ) ; mLockPool . release ( loc0 ) ; } } }