Class DeferredLockManager
- java.lang.Object
-
- org.eclipse.persistence.internal.helper.DeferredLockManager
-
public class DeferredLockManager extends Object
INTERNAL:Purpose: Be used for deadlock avoidance through allowing detection and resolution.
Responsibilities:
- Keep track of all deferred locks of each thread.
- Keep track of all active locks of each thread..
- Maintain the depth of the each thread.
-
-
Field Summary
Fields Modifier and Type Field Description protected Vector
activeLocks
protected Vector
deferredLocks
protected boolean
isThreadComplete
static boolean
SHOULD_USE_DEFERRED_LOCKS
protected int
threadDepth
-
Constructor Summary
Constructors Constructor Description DeferredLockManager()
DeferredLockManager constructor comment.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addActiveLock(Object manager)
add a concurrency manager as active locks to the DLMvoid
addDeferredLock(Object manager)
add a concurrency manager as deferred locks to the DLMvoid
decrementDepth()
decrement the depth of the threadVector
getActiveLocks()
Return a set of the active locks from the DLMVector
getDeferredLocks()
Return a set of the deferred locksint
getThreadDepth()
Return the depth of the thread associated with the DLM, being used to release the lockboolean
hasDeferredLock()
Return if there are any deferred locks.void
incrementDepth()
increment the depth of the threadboolean
isThreadComplete()
Return if the thread is completevoid
releaseActiveLocksOnThread()
Release the active lock on the DLMvoid
setActiveLocks(Vector activeLocks)
set a set of the active locks to the DLMvoid
setDeferredLocks(Vector deferredLocks)
set a set of the deferred locks to the DLMvoid
setIsThreadComplete(boolean isThreadComplete)
set if the thread is complete in the given DLM
-
-
-
Method Detail
-
addActiveLock
public void addActiveLock(Object manager)
add a concurrency manager as active locks to the DLM
-
addDeferredLock
public void addDeferredLock(Object manager)
add a concurrency manager as deferred locks to the DLM
-
decrementDepth
public void decrementDepth()
decrement the depth of the thread
-
getActiveLocks
public Vector getActiveLocks()
Return a set of the active locks from the DLM
-
getDeferredLocks
public Vector getDeferredLocks()
Return a set of the deferred locks
-
getThreadDepth
public int getThreadDepth()
Return the depth of the thread associated with the DLM, being used to release the lock
-
hasDeferredLock
public boolean hasDeferredLock()
Return if there are any deferred locks.
-
incrementDepth
public void incrementDepth()
increment the depth of the thread
-
isThreadComplete
public boolean isThreadComplete()
Return if the thread is complete
-
releaseActiveLocksOnThread
public void releaseActiveLocksOnThread()
Release the active lock on the DLM
-
setActiveLocks
public void setActiveLocks(Vector activeLocks)
set a set of the active locks to the DLM
-
setDeferredLocks
public void setDeferredLocks(Vector deferredLocks)
set a set of the deferred locks to the DLM
-
setIsThreadComplete
public void setIsThreadComplete(boolean isThreadComplete)
set if the thread is complete in the given DLM
-
-