Class LockTracking<T extends Lock>

  • All Implemented Interfaces:
    LockMonitoring<T>

    @InternalUseOnly
    public class LockTracking<T extends Lock>
    extends java.lang.Object
    implements LockMonitoring<T>
    Full tracking of locks with simple deadlock detection and logging as well as automatic release of abandoned locks (same as LockCleaner).
    • Field Detail

      • LOGGED_STALLED_LOCKS_MINIMUM_WAIT_TO_COLLECT

        public static final int LOGGED_STALLED_LOCKS_MINIMUM_WAIT_TO_COLLECT
        See Also:
        Constant Field Values
      • logger

        private final org.slf4j.Logger logger
      • seq

        private static final java.util.concurrent.atomic.AtomicLong seq
      • staleLoggingLock

        private final java.util.concurrent.locks.ReentrantLock staleLoggingLock
      • stacktrace

        private final boolean stacktrace
      • waitToCollect

        private final int waitToCollect
      • alias

        private final java.lang.String alias
      • currentWaitToCollect

        private int currentWaitToCollect
      • previousCleanup

        private long previousCleanup
      • previousActiveLocksSignature

        private long previousActiveLocksSignature
    • Constructor Detail

      • LockTracking

        public LockTracking​(boolean stacktrace,
                            java.lang.String alias,
                            org.slf4j.Logger logger,
                            int waitToCollect,
                            Lock.ExtendedSupplier<T> supplier)