Class NamedLockSupport

    • Field Detail

      • logger

        protected final org.slf4j.Logger logger
      • name

        private final java.lang.String name
      • diagnosticState

        private final java.util.concurrent.ConcurrentHashMap<java.lang.Thread,​java.util.Deque<java.lang.String>> diagnosticState
    • Method Detail

      • name

        public java.lang.String name()
        Description copied from interface: NamedLock
        Returns this instance name, never null
        Specified by:
        name in interface NamedLock
      • lockShared

        public boolean lockShared​(long time,
                                  java.util.concurrent.TimeUnit unit)
                           throws java.lang.InterruptedException
        Description copied from interface: NamedLock
        Tries to lock shared, may block for given time. If successful, returns true.
        Specified by:
        lockShared in interface NamedLock
        Throws:
        java.lang.InterruptedException
      • doLockShared

        protected abstract boolean doLockShared​(long time,
                                                java.util.concurrent.TimeUnit unit)
                                         throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • lockExclusively

        public boolean lockExclusively​(long time,
                                       java.util.concurrent.TimeUnit unit)
                                throws java.lang.InterruptedException
        Description copied from interface: NamedLock
        Tries to lock exclusively, may block for given time. If successful, returns true.
        Specified by:
        lockExclusively in interface NamedLock
        Throws:
        java.lang.InterruptedException
      • doLockExclusively

        protected abstract boolean doLockExclusively​(long time,
                                                     java.util.concurrent.TimeUnit unit)
                                              throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • doUnlock

        protected abstract void doUnlock()
      • close

        public void close()
        Description copied from interface: NamedLock
        Closes the lock resource. Lock MUST be unlocked using NamedLock.unlock() in case any locking happened on it. After invoking this method, the lock instance MUST NOT be used anymore. If lock for same name needed, a new instance should be obtained from factory using NamedLockFactory.getLock(String). Ideally, instances are to be used within try-with-resource blocks, so calling this method directly is not really needed, nor advised.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface NamedLock
      • doClose

        protected void doClose()
      • diagnosticState

        public java.util.Map<java.lang.Thread,​java.util.Deque<java.lang.String>> diagnosticState()
        Returns the diagnostic state (if collected) or empty map, never null.
        Since:
        1.9.11
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object