public synchronized void transitionToDeferredLock() { Thread currentThread = Thread.currentThread(); DeferredLockManager lockManager = getDeferredLockManager(currentThread); if (lockManager == null) { lockManager = new DeferredLockManager(); putDeferredLock(currentThread, lockManager); } lockManager.incrementDepth(); lockManager.addActiveLock(this); }
/** * Release the active lock on the DLM */ public void releaseActiveLocksOnThread() { Vector activeLocks = getActiveLocks(); if (!activeLocks.isEmpty()) { for (Enumeration activeLocksEnum = activeLocks.elements(); activeLocksEnum.hasMoreElements();) { ConcurrencyManager manager = (ConcurrencyManager)activeLocksEnum.nextElement(); manager.release(); } } setIsThreadComplete(true); }
/** * Return if there are any deferred locks. */ public boolean hasDeferredLock() { return !getDeferredLocks().isEmpty(); }
return; int depth = lockManager.getThreadDepth(); lockManager.decrementDepth(); return; if (!lockManager.hasDeferredLock()) { lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); return; lockManager.setIsThreadComplete(true); lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); AbstractSessionLog.getLog().log(SessionLog.FINER, "deferred_locks_released", currentThread.getName());
DeferredLockManager lockManager = getDeferredLockManager(currentThread); if (lockManager == null) { lockManager = new DeferredLockManager(); putDeferredLock(currentThread, lockManager); lockManager.incrementDepth(); synchronized (this) { while (this.numberOfReaders != 0) { lockManager.addActiveLock(this); acquire(); } else { lockManager.addDeferredLock(this); if (AbstractSessionLog.getLog().shouldLog(SessionLog.FINER) && this instanceof CacheKey) { AbstractSessionLog.getLog().log(SessionLog.FINER, SessionLog.CACHE, "acquiring_deferred_lock", ((CacheKey)this).getObject(), currentThread.getName());
Vector deferredLocks = lockManager.getDeferredLocks(); for (Enumeration deferredLocksEnum = deferredLocks.elements(); deferredLocksEnum.hasMoreElements();) { if (currentLockManager == null) { return false; } else if (currentLockManager.isThreadComplete()) { activeThread = deferedLock.getActiveThread();
/** * add a concurrency manager as active locks to the DLM */ public void addActiveLock(Object manager) { getActiveLocks().addElement(manager); }
return; int depth = lockManager.getThreadDepth(); lockManager.decrementDepth(); return; if (!lockManager.hasDeferredLock()) { lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); return; lockManager.setIsThreadComplete(true); lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); AbstractSessionLog.getLog().log(SessionLog.FINER, SessionLog.CACHE, "deferred_locks_released", currentThread.getName()); } catch (InterruptedException interrupted) { AbstractSessionLog.getLog().logThrowable(SessionLog.SEVERE, SessionLog.CACHE, interrupted); lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); throw ConcurrencyException.waitWasInterrupted(interrupted.getMessage()); lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); throw error;
DeferredLockManager lockManager = getDeferredLockManager(currentThread); if (lockManager == null) { lockManager = new DeferredLockManager(); putDeferredLock(currentThread, lockManager); lockManager.incrementDepth(); synchronized (this) { while (this.numberOfReaders != 0) { lockManager.addActiveLock(this); acquire(); } else { lockManager.addDeferredLock(this); if (AbstractSessionLog.getLog().shouldLog(SessionLog.FINER) && this instanceof CacheKey) { AbstractSessionLog.getLog().log(SessionLog.FINER, SessionLog.CACHE, "acquiring_deferred_lock", ((CacheKey)this).getObject(), currentThread.getName());
Vector deferredLocks = lockManager.getDeferredLocks(); for (Enumeration deferredLocksEnum = deferredLocks.elements(); deferredLocksEnum.hasMoreElements();) { if (currentLockManager == null) { return false; } else if (currentLockManager.isThreadComplete()) { activeThread = deferedLock.getActiveThread();
/** * add a concurrency manager as active locks to the DLM */ public void addActiveLock(Object manager) { getActiveLocks().addElement(manager); }
return; int depth = lockManager.getThreadDepth(); lockManager.decrementDepth(); return; if (!lockManager.hasDeferredLock()) { lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); return; lockManager.setIsThreadComplete(true); lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); AbstractSessionLog.getLog().log(SessionLog.FINER, SessionLog.CACHE, "deferred_locks_released", currentThread.getName()); } catch (InterruptedException interrupted) { AbstractSessionLog.getLog().logThrowable(SessionLog.SEVERE, SessionLog.CACHE, interrupted); lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); throw ConcurrencyException.waitWasInterrupted(interrupted.getMessage()); lockManager.releaseActiveLocksOnThread(); removeDeferredLockManager(currentThread); throw error;
DeferredLockManager lockManager = getDeferredLockManager(currentThread); if (lockManager == null) { lockManager = new DeferredLockManager(); putDeferredLock(currentThread, lockManager); lockManager.incrementDepth(); synchronized (this) { while (this.numberOfReaders != 0) { lockManager.addActiveLock(this); acquire(); } else { lockManager.addDeferredLock(this); if (AbstractSessionLog.getLog().shouldLog(SessionLog.FINER)) { AbstractSessionLog.getLog().log(SessionLog.FINER, "acquiring_deferred_lock", getOwnerCacheKey().getObject(), currentThread.getName());
public synchronized void transitionToDeferredLock(){ Thread currentThread = Thread.currentThread(); DeferredLockManager lockManager = getDeferredLockManager(currentThread); if (lockManager == null) { lockManager = new DeferredLockManager(); putDeferredLock(currentThread, lockManager); } lockManager.incrementDepth(); lockManager.addActiveLock(this); }
/** * add a concurrency manager as deferred locks to the DLM */ public void addDeferredLock(Object manager) { getDeferredLocks().addElement(manager); }
/** * Release the active lock on the DLM */ public void releaseActiveLocksOnThread() { Vector activeLocks = getActiveLocks(); if (!activeLocks.isEmpty()) { for (Enumeration activeLocksEnum = activeLocks.elements(); activeLocksEnum.hasMoreElements();) { ConcurrencyManager manager = (ConcurrencyManager)activeLocksEnum.nextElement(); manager.release(); } } setIsThreadComplete(true); }
Vector deferredLocks = lockManager.getDeferredLocks(); for (Enumeration deferredLocksEnum = deferredLocks.elements(); deferredLocksEnum.hasMoreElements();) { if (currentLockManager == null) { return false; } else if (currentLockManager.isThreadComplete()) { activeThread = deferedLock.getActiveThread();
/** * add a concurrency manager as active locks to the DLM */ public void addActiveLock(Object manager) { getActiveLocks().addElement(manager); }
public synchronized void transitionToDeferredLock() { Thread currentThread = Thread.currentThread(); DeferredLockManager lockManager = getDeferredLockManager(currentThread); if (lockManager == null) { lockManager = new DeferredLockManager(); putDeferredLock(currentThread, lockManager); } lockManager.incrementDepth(); lockManager.addActiveLock(this); }
/** * Return if there are any deferred locks. */ public boolean hasDeferredLock() { return !getDeferredLocks().isEmpty(); }