Class InMemoryObjectLock

  • All Implemented Interfaces:
    ObjectLock

    public class InMemoryObjectLock
    extends Object
    implements ObjectLock
    In-memory implementation of ObjectLock that uses Java's ReentrantReadWriteLock.
    • Constructor Detail

      • InMemoryObjectLock

        public InMemoryObjectLock​(long waitTime,
                                  TimeUnit timeUnit)
        How long to wait when attempting to acquire a lock.
        Parameters:
        waitTime - how long to wait for the lock
        timeUnit - unit of wait time
    • Method Detail

      • doInWriteLock

        public void doInWriteLock​(String objectId,
                                  Runnable doInLock)
        Executes the code block after securing a write lock on the objectId. The lock is released after the block completes.
        Specified by:
        doInWriteLock in interface ObjectLock
        Parameters:
        objectId - id of the object
        doInLock - block to execute within the lock
      • doInWriteLock

        public <T> T doInWriteLock​(String objectId,
                                   Callable<T> doInLock)
        Executes the code block after securing a write lock on the objectId. The lock is released after the block completes.
        Specified by:
        doInWriteLock in interface ObjectLock
        Type Parameters:
        T - return type
        Parameters:
        objectId - id of the object
        doInLock - block to execute within the lock
        Returns:
        object