/** * 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); }
/** * add a concurrency manager as deferred locks to the DLM */ public void addDeferredLock(Object manager) { getDeferredLocks().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); Object[] params = new Object[1];
DeferredLockManager lockManager = getDeferredLockManager(currentThread); if (lockManager == null) { lockManager = new DeferredLockManager(); putDeferredLock(currentThread, lockManager); lockManager.incrementDepth(); synchronized (this) { while (!(getNumberOfReaders() == 0)) { lockManager.addActiveLock(this); acquire(); } else { lockManager.addDeferredLock(this); Object[] params = new Object[2]; params[0] = this.getOwnerCacheKey().getObject();
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 if there are any deferred locks. */ public boolean hasDeferredLock() { return !getDeferredLocks().isEmpty(); }
for (Iterator deferredLocks = deferredLockManager.getDeferredLocks().iterator(); deferredLocks.hasNext();) { ConcurrencyManager lock = (ConcurrencyManager)deferredLocks.next();
for (Iterator deferredLocks = deferredLockManager.getDeferredLocks().iterator(); deferredLocks.hasNext();) { ConcurrencyManager lock = (ConcurrencyManager)deferredLocks.next();