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 java.lang.Object implements LockMonitoring<T>
Automatically log and release locks that are no longer referenced and will be garbage collected.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLockCleaner.CleanableLock<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 private java.lang.Stringaliasprivate static ConcurrentCleanercleanerprivate org.slf4j.Loggerloggerprivate booleanstacktraceprivate Lock.ExtendedSupplier<T>supplier-
Fields inherited from interface org.eclipse.rdf4j.common.concurrent.locks.diagnostics.LockMonitoring
INITIAL_WAIT_TO_COLLECT
-
-
Constructor Summary
Constructors Constructor Description LockCleaner(boolean stacktrace, java.lang.String alias, org.slf4j.Logger logger, Lock.ExtendedSupplier<T> supplier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LockgetLock()private LockCleaner.CleanableLock<T>getLockInner(T lock)Lockregister(T lock)LocktryLock()voidunregister(Lock lock)TunsafeInnerLock(Lock lock)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.common.concurrent.locks.diagnostics.LockMonitoring
getLock, requiresManualCleanup, runCleanup
-
-
-
-
Field Detail
-
cleaner
private static final ConcurrentCleaner cleaner
-
logger
private final org.slf4j.Logger logger
-
supplier
private final Lock.ExtendedSupplier<T extends Lock> supplier
-
alias
private final java.lang.String alias
-
stacktrace
private final boolean stacktrace
-
-
Constructor Detail
-
LockCleaner
public LockCleaner(boolean stacktrace, java.lang.String alias, org.slf4j.Logger logger, Lock.ExtendedSupplier<T> supplier)
-
-
Method Detail
-
getLock
public Lock getLock() throws java.lang.InterruptedException
- Specified by:
getLockin interfaceLockMonitoring<T extends Lock>- Throws:
java.lang.InterruptedException
-
tryLock
public Lock tryLock()
- Specified by:
tryLockin interfaceLockMonitoring<T extends Lock>
-
unsafeInnerLock
public T unsafeInnerLock(Lock lock)
- Specified by:
unsafeInnerLockin 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>
-
getLockInner
private LockCleaner.CleanableLock<T> getLockInner(T lock)
-
-