/** * Releases all locks held by this Locker, and exits all scopes. */ final void scopeExitAll() { mParentScope = null; scopeUnlockAll(); mTailBlock = null; }
/** * Releases all locks held by this Locker, and exits all scopes. */ final void scopeExitAll() { mParentScope = null; scopeUnlockAll(); mTailBlock = null; }
/** * Releases all locks held by this Locker, and exits all scopes. */ final void scopeExitAll() { mParentScope = null; scopeUnlockAll(); mTailBlock = null; }
/** * Exits the current scope, releasing all held locks. * * @return old parent scope */ final ParentScope scopeExit() { scopeUnlockAll(); return popScope(); }
/** * Exits the current scope, releasing all held locks. * * @return old parent scope */ final ParentScope scopeExit() { scopeUnlockAll(); return popScope(); }
/** * Exits the current scope, releasing all held locks. * * @return old parent scope */ final ParentScope scopeExit() { scopeUnlockAll(); return popScope(); }
@Override public boolean store(long indexId, byte[] key, byte[] value) throws IOException { Index ix = getIndex(indexId); // Allow side-effect free operations to be performed before acquiring latch. mOpLatch.acquireShared(); // Locks must be acquired in their original order to avoid // deadlock, so don't allow another task thread to run yet. Locker locker = mDatabase.mLockManager.localLocker(); locker.lockExclusive(indexId, key, INFINITE_TIMEOUT); // Allow another task thread to run while operation completes. nextTask(); try { while (ix != null) { try { ix.store(Transaction.BOGUS, key, value); break; } catch (ClosedIndexException e) { // User closed the shared index reference, so re-open it. ix = openIndex(indexId, null); } } } finally { locker.scopeUnlockAll(); } // Only release if no exception. mOpLatch.releaseShared(); notifyStore(ix, key, value); // Return false to prevent RedoDecoder from looping back. return false; }
super.scopeUnlockAll(); } else { super.scopeUnlockAll();
super.scopeUnlockAll(); } else { super.scopeUnlockAll();
super.scopeUnlockAll(); } else { super.scopeUnlockAll();
super.scopeUnlockAll(); } else { try { super.scopeUnlockAll();
super.scopeUnlockAll(); } else { try { super.scopeUnlockAll();
super.scopeUnlockAll(); } else { try { super.scopeUnlockAll();