_Lock addLock(long indexId, byte[] key) { _Lock lock = new _Lock(); lock.mIndexId = indexId; lock.mKey = key; lock.mHashCode = _LockManager.hash(indexId, key); lock.mLockManagerNext = mTopLock; mTopLock = lock; return lock; }
_Lock addLock(long indexId, byte[] key) { _Lock lock = new _Lock(); lock.mIndexId = indexId; lock.mKey = key; lock.mHashCode = _LockManager.hash(indexId, key); lock.mLockManagerNext = mTopLock; mTopLock = lock; return lock; }
_Lock addLock(long indexId, byte[] key) { _Lock lock = new _Lock(); lock.mIndexId = indexId; lock.mKey = key; lock.mHashCode = _LockManager.hash(indexId, key); lock.mLockManagerNext = mTopLock; mTopLock = lock; return lock; }
/** * Finds or creates a lock. Caller must hold exclusive latch. */ _Lock lockAccess(long indexId, byte[] key, int hash) { _Lock[] entries = mEntries; int index = hash & (entries.length - 1); for (_Lock lock = entries[index]; lock != null; lock = lock.mLockManagerNext) { if (lock.matches(indexId, key, hash)) { return lock; } } if (mSize >= mGrowThreshold) { entries = rehash(entries); index = hash & (entries.length - 1); } _Lock lock = new _Lock(); lock.mIndexId = indexId; lock.mKey = key; lock.mHashCode = hash; lock.mLockManagerNext = entries[index]; // Fence so that the isAvailable method doesn't observe a broken chain. UNSAFE.storeFence(); entries[index] = lock; mSize++; return lock; }
/** * Finds or creates a lock. Caller must hold exclusive latch. */ _Lock lockAccess(long indexId, byte[] key, int hash) { _Lock[] entries = mEntries; int index = hash & (entries.length - 1); for (_Lock lock = entries[index]; lock != null; lock = lock.mLockManagerNext) { if (lock.matches(indexId, key, hash)) { return lock; } } if (mSize >= mGrowThreshold) { entries = rehash(entries); index = hash & (entries.length - 1); } _Lock lock = new _Lock(); lock.mIndexId = indexId; lock.mKey = key; lock.mHashCode = hash; lock.mLockManagerNext = entries[index]; // Fence so that the isAvailable method doesn't observe a broken chain. UNSAFE.storeFence(); entries[index] = lock; mSize++; return lock; }
lock = new _Lock();
lock = new _Lock();
lock = new _Lock();