info.aduna.concurrent.locks
Class AbstractReadWriteLockManager

java.lang.Object
  extended by info.aduna.concurrent.locks.AbstractReadWriteLockManager
All Implemented Interfaces:
ReadWriteLockManager
Direct Known Subclasses:
ReadPrefReadWriteLockManager, WritePrefReadWriteLockManager

public abstract class AbstractReadWriteLockManager
extends java.lang.Object
implements ReadWriteLockManager

An abstract base implementation of a read/write lock manager.

Author:
Arjohn Kampman, James Leigh

Nested Class Summary
protected  class AbstractReadWriteLockManager.ReadDebugLock
           
protected  class AbstractReadWriteLockManager.ReadLock
           
protected  class AbstractReadWriteLockManager.WriteDebugLock
           
protected  class AbstractReadWriteLockManager.WriteLock
           
 
Field Summary
protected  int activeReaders
          Counter that keeps track of the numer of active read locks.
protected  boolean writerActive
          Flag indicating whether a writer is active.
 
Constructor Summary
AbstractReadWriteLockManager()
          Creates a MultiReadSingleWriteLockManager.
AbstractReadWriteLockManager(boolean trackLocks)
          Creates a new MultiReadSingleWriteLockManager, optionally with lock tracking enabled.
 
Method Summary
protected  Lock createReadLock()
           
protected  Lock createWriteLock()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface info.aduna.concurrent.locks.ReadWriteLockManager
getReadLock, getWriteLock, tryReadLock, tryWriteLock
 

Field Detail

writerActive

protected boolean writerActive
Flag indicating whether a writer is active.


activeReaders

protected int activeReaders
Counter that keeps track of the numer of active read locks.

Constructor Detail

AbstractReadWriteLockManager

public AbstractReadWriteLockManager()
Creates a MultiReadSingleWriteLockManager.


AbstractReadWriteLockManager

public AbstractReadWriteLockManager(boolean trackLocks)
Creates a new MultiReadSingleWriteLockManager, optionally with lock tracking enabled.

Parameters:
trackLocks - Controls whether the lock manager will keep track of active locks. Enabling lock tracking will add some overhead, but can be very useful for debugging.
Method Detail

createReadLock

protected Lock createReadLock()

createWriteLock

protected Lock createWriteLock()


Copyright © 2010 Aduna. All Rights Reserved.