Class DeferredLockManager


  • public class DeferredLockManager
    extends java.lang.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.
    • Constructor Summary

      Constructors 
      Constructor Description
      DeferredLockManager()
      DeferredLockManager constructor comment.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addActiveLock​(java.lang.Object manager)
      add a concurrency manager as active locks to the DLM
      void addDeferredLock​(java.lang.Object manager)
      add a concurrency manager as deferred locks to the DLM
      void decrementDepth()
      decrement the depth of the thread
      java.util.Vector getActiveLocks()
      Return a set of the active locks from the DLM
      java.util.Vector getDeferredLocks()
      Return a set of the deferred locks
      int getThreadDepth()
      Return the depth of the thread associated with the DLM, being used to release the lock
      boolean hasDeferredLock()
      Return if there are any deferred locks.
      void incrementDepth()
      increment the depth of the thread
      boolean isThreadComplete()
      Return if the thread is complete
      void releaseActiveLocksOnThread()
      Release the active lock on the DLM
      void setActiveLocks​(java.util.Vector activeLocks)
      set a set of the active locks to the DLM
      void setDeferredLocks​(java.util.Vector deferredLocks)
      set a set of the deferred locks to the DLM
      void setIsThreadComplete​(boolean isThreadComplete)
      set if the thread is complete in the given DLM
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • deferredLocks

        protected java.util.Vector deferredLocks
      • activeLocks

        protected java.util.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​(java.lang.Object manager)
        add a concurrency manager as active locks to the DLM
      • addDeferredLock

        public void addDeferredLock​(java.lang.Object manager)
        add a concurrency manager as deferred locks to the DLM
      • decrementDepth

        public void decrementDepth()
        decrement the depth of the thread
      • getActiveLocks

        public java.util.Vector getActiveLocks()
        Return a set of the active locks from the DLM
      • getDeferredLocks

        public java.util.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​(java.util.Vector activeLocks)
        set a set of the active locks to the DLM
      • setDeferredLocks

        public void setDeferredLocks​(java.util.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