org.jboss.cache.util.concurrent.locks
Class OwnableReentrantLockContainer<E>

java.lang.Object
  extended by org.jboss.cache.util.concurrent.locks.LockContainer<E>
      extended by org.jboss.cache.util.concurrent.locks.OwnableReentrantLockContainer<E>

@ThreadSafe
public class OwnableReentrantLockContainer<E>
extends LockContainer<E>

A LockContainer that holds OwnableReentrantLocks.

Since:
3.0
Author:
Manik Surtani (manik AT jboss DOT org)
See Also:
ReentrantLockContainer, OwnableReentrantLock

Constructor Summary
OwnableReentrantLockContainer(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(E object)
           
 int getNumLocksHeld()
           
protected  void initLocks(int numLocks)
           
 boolean isLocked(E object)
           
 boolean ownsLock(E object, Object owner)
          Tests if a give owner owns a lock on a specified object.
 void reset()
          Clears all locks held and re-initialises stripes.
 int size()
           
 String toString()
           
 
Methods inherited from class org.jboss.cache.util.concurrent.locks.LockContainer
calculateNumberOfSegments, hashToIndex
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OwnableReentrantLockContainer

public OwnableReentrantLockContainer(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 LockContainer<E>

getLock

public final OwnableReentrantLock getLock(E object)
Specified by:
getLock in class LockContainer<E>
Parameters:
object - object
Returns:
the lock for a specific object

ownsLock

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

Specified by:
ownsLock in class LockContainer<E>
Parameters:
object - object to check
owner - owner to test
Returns:
true if owner owns lock, false otherwise

isLocked

public final boolean isLocked(E object)
Specified by:
isLocked in class LockContainer<E>
Parameters:
object - object
Returns:
true if an object is locked, false otherwise

getNumLocksHeld

public final int getNumLocksHeld()
Specified by:
getNumLocksHeld in class LockContainer<E>
Returns:
number of locks held

toString

public String toString()
Overrides:
toString in class Object

reset

public void reset()
Description copied from class: LockContainer
Clears all locks held and re-initialises stripes.

Specified by:
reset in class LockContainer<E>

size

public int size()
Specified by:
size in class LockContainer<E>


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