Class 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 Detail

      • deferredLocks

        protected Vector deferredLocks
      • activeLocks

        protected Vector activeLocks
      • threadDepth

        protected int threadDepth
      • isThreadComplete

        protected boolean isThreadComplete
      • SHOULD_USE_DEFERRED_LOCKS

        public static boolean SHOULD_USE_DEFERRED_LOCKS
    • Constructor Detail

      • DeferredLockManager

        public DeferredLockManager()
        DeferredLockManager constructor comment.
    • 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