Class LockCleaner<T extends Lock>
java.lang.Object
org.eclipse.rdf4j.common.concurrent.locks.diagnostics.LockCleaner<T>
- All Implemented Interfaces:
LockMonitoring<T>
@InternalUseOnly
public class LockCleaner<T extends Lock>
extends Object
implements LockMonitoring<T>
Automatically log and release locks that are no longer referenced and will be garbage collected.
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface LockMonitoring
LockMonitoring.Wrapper<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Stringprivate static final ConcurrentCleanerprivate final org.slf4j.Loggerprivate final booleanprivate final Lock.ExtendedSupplier<T> Fields inherited from interface LockMonitoring
INITIAL_WAIT_TO_COLLECT -
Constructor Summary
ConstructorsConstructorDescriptionLockCleaner(boolean stacktrace, String alias, org.slf4j.Logger logger, Lock.ExtendedSupplier<T> supplier) -
Method Summary
Modifier and TypeMethodDescriptiongetLock()private LockCleaner.CleanableLock<T> getLockInner(T lock) tryLock()voidunregister(Lock lock) unsafeInnerLock(Lock lock) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface LockMonitoring
getLock, requiresManualCleanup, runCleanup
-
Field Details
-
cleaner
-
logger
private final org.slf4j.Logger logger -
supplier
-
alias
-
stacktrace
private final boolean stacktrace
-
-
Constructor Details
-
LockCleaner
public LockCleaner(boolean stacktrace, String alias, org.slf4j.Logger logger, Lock.ExtendedSupplier<T> supplier)
-
-
Method Details
-
getLock
- Specified by:
getLockin interfaceLockMonitoring<T extends Lock>- Throws:
InterruptedException
-
tryLock
- Specified by:
tryLockin interfaceLockMonitoring<T extends Lock>
-
unsafeInnerLock
- Specified by:
unsafeInnerLockin interfaceLockMonitoring<T extends Lock>
-
register
-
unregister
- Specified by:
unregisterin interfaceLockMonitoring<T extends Lock>
-
getLockInner
-