Class LockRepository
java.lang.Object
com.plotsquared.core.synchronization.LockRepository
A repository for keyed
locks
-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionGet the lock corresponding to the given lock keyWait for a lock to be available, lock it and return anAutoCloseable
instance that locks the key.void
Wait for the lock to become available, and run the given runnable, then unlock the lock.void
Consume a lock
-
Constructor Details
-
LockRepository
public LockRepository()
-
-
Method Details
-
getLock
Get the lock corresponding to the given lock key- Parameters:
key
- Lock key- Returns:
- Lock
-
useLock
Consume a lock- Parameters:
key
- Lock keyconsumer
- Lock consumer
-
useLock
Wait for the lock to become available, and run the given runnable, then unlock the lock. This is a blocking method.- Parameters:
key
- Lock keyrunnable
- Action to run when the lock is available
-
lock
Wait for a lock to be available, lock it and return anAutoCloseable
instance that locks the key.This is meant to be used with try-with-resources, like such:
try (final LockAccess lockAccess = lockRepository.lock(LockKey.of("your.key"))) { // use lock }
- Parameters:
key
- Lock key- Returns:
- Lock access. Must be closed.
-