Package org.eclipse.aether.named.support
Class AdaptedSemaphoreNamedLock
java.lang.Object
org.eclipse.aether.named.support.NamedLockSupport
org.eclipse.aether.named.support.AdaptedSemaphoreNamedLock
- All Implemented Interfaces:
AutoCloseable,NamedLock
Named lock support implementation that is using "adapted" semaphore (to be able to use semaphores not sharing common
API).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceWrapper for semaphore-like stuff, that do not share common ancestor. -
Field Summary
Fields inherited from class org.eclipse.aether.named.support.NamedLockSupport
logger -
Constructor Summary
ConstructorsConstructorDescriptionAdaptedSemaphoreNamedLock(String name, NamedLockFactorySupport factory, AdaptedSemaphoreNamedLock.AdaptedSemaphore semaphore) -
Method Summary
Modifier and TypeMethodDescriptionbooleanlockExclusively(long time, TimeUnit unit) Tries to lock exclusively, may block for given time.booleanlockShared(long time, TimeUnit unit) Tries to lock shared, may block for given time.voidunlock()Unlocks the lock, must be invoked by caller after one of theNamedLock.lockShared(long, TimeUnit)orNamedLock.lockExclusively(long, TimeUnit).Methods inherited from class org.eclipse.aether.named.support.NamedLockSupport
close, name
-
Constructor Details
-
AdaptedSemaphoreNamedLock
public AdaptedSemaphoreNamedLock(String name, NamedLockFactorySupport factory, AdaptedSemaphoreNamedLock.AdaptedSemaphore semaphore)
-
-
Method Details
-
lockExclusively
Description copied from interface:NamedLockTries to lock exclusively, may block for given time. If successful, returnstrue.- Throws:
InterruptedException
-
unlock
Description copied from interface:NamedLockUnlocks the lock, must be invoked by caller after one of theNamedLock.lockShared(long, TimeUnit)orNamedLock.lockExclusively(long, TimeUnit).