Infinispan Distribution 5.2.6.Final-redhat-2

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

java.lang.Object
  extended by org.infinispan.util.concurrent.locks.containers.AbstractLockContainer<L>
      extended by org.infinispan.util.concurrent.locks.containers.AbstractPerEntryLockContainer<VisibleOwnerRefCountingReentrantLock>
          extended by org.infinispan.util.concurrent.locks.containers.ReentrantPerEntryLockContainer
All Implemented Interfaces:
LockContainer<VisibleOwnerRefCountingReentrantLock>

public class ReentrantPerEntryLockContainer
extends AbstractPerEntryLockContainer<VisibleOwnerRefCountingReentrantLock>

A per-entry lock container for ReentrantLocks

Since:
4.0
Author:
Manik Surtani

Field Summary
 
Fields inherited from class org.infinispan.util.concurrent.locks.containers.AbstractPerEntryLockContainer
locks
 
Constructor Summary
ReentrantPerEntryLockContainer(int concurrencyLevel)
           
 
Method Summary
protected  Log getLog()
           
 boolean isLocked(Object key)
           
protected  void lock(VisibleOwnerRefCountingReentrantLock lock, Object lockOwner)
           
protected  VisibleOwnerRefCountingReentrantLock newLock()
           
 boolean ownsLock(Object key, Object ignored)
          Tests if a give owner owns a lock on a specified object.
protected  boolean tryLock(VisibleOwnerRefCountingReentrantLock lock, long timeout, TimeUnit unit, Object unused)
           
protected  void unlock(VisibleOwnerRefCountingReentrantLock l, Object unused)
           
 
Methods inherited from class org.infinispan.util.concurrent.locks.containers.AbstractPerEntryLockContainer
acquireLock, getLock, getLockId, getNumLocksHeld, releaseLock, size, toString
 
Methods inherited from class org.infinispan.util.concurrent.locks.containers.AbstractLockContainer
safeRelease
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ReentrantPerEntryLockContainer

public ReentrantPerEntryLockContainer(int concurrencyLevel)
Method Detail

getLog

protected Log getLog()
Specified by:
getLog in class AbstractLockContainer<VisibleOwnerRefCountingReentrantLock>

newLock

protected VisibleOwnerRefCountingReentrantLock newLock()
Specified by:
newLock in class AbstractPerEntryLockContainer<VisibleOwnerRefCountingReentrantLock>

ownsLock

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

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

isLocked

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

unlock

protected void unlock(VisibleOwnerRefCountingReentrantLock l,
                      Object unused)
Specified by:
unlock in class AbstractLockContainer<VisibleOwnerRefCountingReentrantLock>

tryLock

protected boolean tryLock(VisibleOwnerRefCountingReentrantLock lock,
                          long timeout,
                          TimeUnit unit,
                          Object unused)
                   throws InterruptedException
Specified by:
tryLock in class AbstractLockContainer<VisibleOwnerRefCountingReentrantLock>
Throws:
InterruptedException

lock

protected void lock(VisibleOwnerRefCountingReentrantLock lock,
                    Object lockOwner)
Specified by:
lock in class AbstractLockContainer<VisibleOwnerRefCountingReentrantLock>

Infinispan Distribution 5.2.6.Final-redhat-2

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