Classes | Public Member Functions | Protected Member Functions | Protected Attributes

com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock Class Reference

List of all members.

Classes

class  ReaderLock
class  Signaller
interface  Sync
class  WriterLock

Public Member Functions

Sync writeLock ()
Sync readLock ()

Protected Member Functions

synchronized void cancelledWaitingReader ()
synchronized void cancelledWaitingWriter ()
boolean allowReader ()
synchronized boolean startRead ()
synchronized boolean startWrite ()
synchronized boolean startReadFromNewReader ()
synchronized boolean startWriteFromNewWriter ()
synchronized boolean startReadFromWaitingReader ()
synchronized boolean startWriteFromWaitingWriter ()
synchronized Signaller endRead ()
synchronized Signaller endWrite ()

Protected Attributes

long activeReaders_ = 0
Thread activeWriter_ = null
long waitingReaders_ = 0
long waitingWriters_ = 0
final ReaderLock readerLock_ = new ReaderLock()
final WriterLock writerLock_ = new WriterLock()

Detailed Description

A ReadWriteLock that prefers waiting writers over waiting readers when there is contention. This class is adapted from the versions described in CPJ, improving on the ones there a bit by segregating reader and writer wait queues, which is typically more efficient.

The locks are NOT reentrant. In particular, even though it may appear to usually work OK, a thread holding a read lock should not attempt to re-acquire it. Doing so risks lockouts when there are also waiting writers.

[Introduction to this package. ]


Member Function Documentation

boolean com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.allowReader (  )  [protected]
synchronized void com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.cancelledWaitingReader (  )  [protected]
synchronized void com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.cancelledWaitingWriter (  )  [protected]
synchronized Signaller com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.endRead (  )  [protected]
synchronized Signaller com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.endWrite (  )  [protected]
Sync com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.readLock (  ) 
synchronized boolean com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.startRead (  )  [protected]
synchronized boolean com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.startReadFromNewReader (  )  [protected]
synchronized boolean com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.startReadFromWaitingReader (  )  [protected]
synchronized boolean com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.startWrite (  )  [protected]
synchronized boolean com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.startWriteFromNewWriter (  )  [protected]
synchronized boolean com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.startWriteFromWaitingWriter (  )  [protected]
Sync com.cosylab.acs.maci.manager.ReaderPreferenceReadWriteLock.writeLock (  ) 

Member Data Documentation


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Properties