Class LockTracking<T extends Lock>
- java.lang.Object
-
- org.eclipse.rdf4j.common.concurrent.locks.diagnostics.LockTracking<T>
-
- All Implemented Interfaces:
LockMonitoring<T>
@InternalUseOnly public class LockTracking<T extends Lock> extends 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).- Author:
- HÃ¥vard M. Ottestad
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLockTracking.SimpleLock<T extends Lock>-
Nested classes/interfaces inherited from interface org.eclipse.rdf4j.common.concurrent.locks.diagnostics.LockMonitoring
LockMonitoring.Wrapper<T extends Lock>
-
-
Field Summary
Fields Modifier and Type Field Description static intLOGGED_STALLED_LOCKS_MINIMUM_WAIT_TO_COLLECT-
Fields inherited from interface org.eclipse.rdf4j.common.concurrent.locks.diagnostics.LockMonitoring
INITIAL_WAIT_TO_COLLECT
-
-
Constructor Summary
Constructors Constructor Description LockTracking(boolean stacktrace, String alias, org.slf4j.Logger logger, int waitToCollect, Lock.ExtendedSupplier<T> supplier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LockgetLock()LockgetLock(String alias)Lockregister(T lock)booleanrequiresManualCleanup()voidrunCleanup()LocktryLock()voidunregister(Lock lock)TunsafeInnerLock(Lock lock)
-
-
-
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
-
-
Constructor Detail
-
LockTracking
public LockTracking(boolean stacktrace, String alias, org.slf4j.Logger logger, int waitToCollect, Lock.ExtendedSupplier<T> supplier)
-
-
Method Detail
-
runCleanup
public void runCleanup()
- Specified by:
runCleanupin interfaceLockMonitoring<T extends Lock>
-
getLock
public Lock getLock() throws InterruptedException
- Specified by:
getLockin interfaceLockMonitoring<T extends Lock>- Throws:
InterruptedException
-
getLock
public Lock getLock(String alias) throws InterruptedException
- Specified by:
getLockin interfaceLockMonitoring<T extends Lock>- Throws:
InterruptedException
-
unsafeInnerLock
public T unsafeInnerLock(Lock lock)
- Specified by:
unsafeInnerLockin interfaceLockMonitoring<T extends Lock>
-
tryLock
public Lock tryLock()
- Specified by:
tryLockin interfaceLockMonitoring<T extends Lock>
-
requiresManualCleanup
public boolean requiresManualCleanup()
- Specified by:
requiresManualCleanupin interfaceLockMonitoring<T extends Lock>
-
register
public Lock register(T lock)
- Specified by:
registerin interfaceLockMonitoring<T extends Lock>
-
unregister
public void unregister(Lock lock)
- Specified by:
unregisterin interfaceLockMonitoring<T extends Lock>
-
-