org.jboss.cache.lock
Class ReadWriteLockWithUpgrade
java.lang.Object
org.jboss.cache.lock.ReadWriteLockWithUpgrade
- All Implemented Interfaces:
- java.util.concurrent.locks.ReadWriteLock
- Direct Known Subclasses:
- NonBlockingWriterLock
public class ReadWriteLockWithUpgrade
- extends java.lang.Object
- implements java.util.concurrent.locks.ReadWriteLock
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
activeWriter_
protected java.lang.Thread activeWriter_
upgraderLocal_
protected static final java.util.Map<java.util.concurrent.locks.ReadWriteLock,java.lang.Object> upgraderLocal_
dummy_
protected static final java.lang.Object dummy_
readerLock_
protected final ReadWriteLockWithUpgrade.ReaderLock readerLock_
writerLock_
protected final ReadWriteLockWithUpgrade.WriterLock writerLock_
log_
protected static final org.apache.commons.logging.Log log_
ReadWriteLockWithUpgrade
public ReadWriteLockWithUpgrade()
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
writeLock
public java.util.concurrent.locks.Lock writeLock()
- Specified by:
writeLock
in interface java.util.concurrent.locks.ReadWriteLock
readLock
public java.util.concurrent.locks.Lock readLock()
- Specified by:
readLock
in interface java.util.concurrent.locks.ReadWriteLock
upgradeLockAttempt
public java.util.concurrent.locks.Lock upgradeLockAttempt(long msecs)
throws UpgradeException
- Attempt to obtain an upgrade to writer lock. If successful, the read lock is upgraded to
write lock. If fails, the owner retains the read lock.
- Parameters:
msecs
- Time to wait in millisecons.
- Returns:
- Sync object. Null if not successful or timeout.
- Throws:
UpgradeException
changeLock
protected java.util.concurrent.locks.Lock changeLock()
cancelledWaitingReader
protected void cancelledWaitingReader()
cancelledWaitingWriter
protected void cancelledWaitingWriter()
allowReader
protected boolean allowReader()
- Override this method to change to reader preference *
startRead
protected boolean startRead()
startWrite
protected boolean startWrite()
startReadFromNewReader
protected boolean startReadFromNewReader()
startWriteFromNewWriter
protected boolean startWriteFromNewWriter()
startReadFromWaitingReader
protected boolean startReadFromWaitingReader()
startWriteFromWaitingWriter
protected boolean startWriteFromWaitingWriter()
endRead
protected org.jboss.cache.lock.ReadWriteLockWithUpgrade.Signaller endRead()
- Called upon termination of a read.
Returns the object to signal to wake up a waiter, or null if no such
endWrite
protected org.jboss.cache.lock.ReadWriteLockWithUpgrade.Signaller endWrite()
- Called upon termination of a write.
Returns the object to signal to wake up a waiter, or null if no such