org.infinispan.util.concurrent.locks.containers
Class OwnableReentrantStripedLockContainer

java.lang.Object
  extended by org.infinispan.util.concurrent.locks.containers.AbstractStripedLockContainer
      extended by org.infinispan.util.concurrent.locks.containers.OwnableReentrantStripedLockContainer
All Implemented Interfaces:
LockContainer

@ThreadSafe
public class OwnableReentrantStripedLockContainer
extends AbstractStripedLockContainer

A LockContainer that holds OwnableReentrantLocks.

Since:
4.0
Author:
Manik Surtani (manik@jboss.org)
See Also:
ReentrantStripedLockContainer, OwnableReentrantLock

Constructor Summary
OwnableReentrantStripedLockContainer(int concurrencyLevel, InvocationContextContainer icc)
          Creates a new LockContainer which uses a certain number of shared locks across all elements that need to be locked.
 
Method Summary
 OwnableReentrantLock getLock(Object object)
           
 int getNumLocksHeld()
           
protected  void initLocks(int numLocks)
           
 boolean isLocked(Object object)
           
 boolean ownsLock(Object object, Object owner)
          Tests if a give owner owns a lock on a specified object.
 int size()
           
 String toString()
           
 
Methods inherited from class org.infinispan.util.concurrent.locks.containers.AbstractStripedLockContainer
acquireLock, releaseLock
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OwnableReentrantStripedLockContainer

public OwnableReentrantStripedLockContainer(int concurrencyLevel,
                                            InvocationContextContainer icc)
Creates a new LockContainer which uses a certain number of shared locks across all elements that need to be locked.

Parameters:
concurrencyLevel - concurrency level for number of stripes to create. Stripes are created in powers of two, with a minimum of concurrencyLevel created.
icc - invocation context container to use
Method Detail

initLocks

protected void initLocks(int numLocks)
Specified by:
initLocks in class AbstractStripedLockContainer

getLock

public final OwnableReentrantLock getLock(Object object)
Parameters:
object - object
Returns:
the lock for a specific object

ownsLock

public final boolean ownsLock(Object object,
                              Object owner)
Description copied from interface: LockContainer
Tests if a give owner owns a lock on a specified object.

Parameters:
object - object to check
owner - owner to test
Returns:
true if owner owns lock, false otherwise

isLocked

public final boolean isLocked(Object object)
Parameters:
object - object
Returns:
true if an object is locked, false otherwise

getNumLocksHeld

public final int getNumLocksHeld()
Returns:
number of locks held

toString

public String toString()
Overrides:
toString in class Object

size

public int size()
Returns:
the size of the shared lock pool


Copyright © 2011 JBoss, a division of Red Hat. All Rights Reserved.