Package io.ocfl.core.lock
Class InMemoryObjectLock
java.lang.Object
io.ocfl.core.lock.InMemoryObjectLock
- All Implemented Interfaces:
ObjectLock
In-memory implementation of ObjectLock that uses Java's ReentrantReadWriteLock.
-
Constructor Summary
ConstructorsConstructorDescriptionInMemoryObjectLock
(long waitTime, TimeUnit timeUnit) How long to wait when attempting to acquire a lock. -
Method Summary
Modifier and TypeMethodDescriptionvoid
doInWriteLock
(String objectId, Runnable doInLock) Executes the code block after securing a write lock on the objectId.<T> T
doInWriteLock
(String objectId, Callable<T> doInLock) Executes the code block after securing a write lock on the objectId.
-
Constructor Details
-
InMemoryObjectLock
How long to wait when attempting to acquire a lock.- Parameters:
waitTime
- how long to wait for the locktimeUnit
- unit of wait time
-
-
Method Details
-
doInWriteLock
Executes the code block after securing a write lock on the objectId. The lock is released after the block completes.- Specified by:
doInWriteLock
in interfaceObjectLock
- Parameters:
objectId
- id of the objectdoInLock
- block to execute within the lock
-
doInWriteLock
Executes the code block after securing a write lock on the objectId. The lock is released after the block completes.- Specified by:
doInWriteLock
in interfaceObjectLock
- Type Parameters:
T
- return type- Parameters:
objectId
- id of the objectdoInLock
- block to execute within the lock- Returns:
- object
-