org.infinispan.util.concurrent.locks.containers
Class AbstractPerEntryLockContainer
java.lang.Object
org.infinispan.util.concurrent.locks.containers.AbstractPerEntryLockContainer
- All Implemented Interfaces:
- LockContainer
- Direct Known Subclasses:
- OwnableReentrantPerEntryLockContainer, ReentrantPerEntryLockContainer
public abstract class AbstractPerEntryLockContainer
- extends Object
- implements LockContainer
An abstract lock container that creates and maintains a new lock per entry
- Since:
- 4.0
- Author:
- Manik Surtani
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
locks
protected final ConcurrentMap<Object,Lock> locks
AbstractPerEntryLockContainer
protected AbstractPerEntryLockContainer(int concurrencyLevel)
newLock
protected abstract Lock newLock()
getLock
public final Lock getLock(Object key)
- Specified by:
getLock
in interface LockContainer
- Parameters:
key
- object
- Returns:
- the lock for a specific object
getNumLocksHeld
public int getNumLocksHeld()
- Specified by:
getNumLocksHeld
in interface LockContainer
- Returns:
- number of locks held
size
public int size()
- Specified by:
size
in interface LockContainer
- Returns:
- the size of the shared lock pool
acquireLock
public Lock acquireLock(Object key,
long timeout,
TimeUnit unit)
throws InterruptedException
- Description copied from interface:
LockContainer
- Attempts to acquire a lock for the given object within certain time boundaries defined by the timeout and
time unit parameters.
- Specified by:
acquireLock
in interface LockContainer
- Parameters:
key
- Object to acquire lock ontimeout
- Time after which the lock acquisition will failunit
- Time unit of the given timeout
- Returns:
- If lock was acquired it returns the corresponding Lock object. If lock was not acquired, it returns null
- Throws:
InterruptedException
- If the lock acquisition was interrupted
releaseLock
public void releaseLock(Object key)
- Description copied from interface:
LockContainer
- Release lock on the given key.
- Specified by:
releaseLock
in interface LockContainer
- Parameters:
key
- Object on which lock is to be removed
Copyright © 2011 JBoss, a division of Red Hat. All Rights Reserved.