ReadWriteLock
ReaderPreferenceReadWriteLock
, ReentrantWriterPreferenceReadWriteLock
public class WriterPreferenceReadWriteLock extends java.lang.Object implements ReadWriteLock
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.
Modifier and Type | Class | Description |
---|---|---|
protected class |
WriterPreferenceReadWriteLock.ReaderLock |
|
protected class |
WriterPreferenceReadWriteLock.Signaller |
Reader and Writer requests are maintained in two different wait sets, by
two different objects.
|
protected class |
WriterPreferenceReadWriteLock.WriterLock |
Modifier and Type | Field | Description |
---|---|---|
protected long |
activeReaders_ |
|
protected java.lang.Thread |
activeWriter_ |
|
protected WriterPreferenceReadWriteLock.ReaderLock |
readerLock_ |
|
protected long |
waitingReaders_ |
|
protected long |
waitingWriters_ |
|
protected WriterPreferenceReadWriteLock.WriterLock |
writerLock_ |
Constructor | Description |
---|---|
WriterPreferenceReadWriteLock() |
Modifier and Type | Method | Description |
---|---|---|
protected boolean |
allowReader() |
Override this method to change to reader preference *
|
protected void |
cancelledWaitingReader() |
|
protected void |
cancelledWaitingWriter() |
|
protected WriterPreferenceReadWriteLock.Signaller |
endRead() |
Called upon termination of a read.
|
protected WriterPreferenceReadWriteLock.Signaller |
endWrite() |
Called upon termination of a write.
|
Sync |
readLock() |
get the readLock *
|
protected boolean |
startRead() |
|
protected boolean |
startReadFromNewReader() |
|
protected boolean |
startReadFromWaitingReader() |
|
protected boolean |
startWrite() |
|
protected boolean |
startWriteFromNewWriter() |
|
protected boolean |
startWriteFromWaitingWriter() |
|
Sync |
writeLock() |
get the writeLock *
|
protected long activeReaders_
protected java.lang.Thread activeWriter_
protected long waitingReaders_
protected long waitingWriters_
protected final WriterPreferenceReadWriteLock.ReaderLock readerLock_
protected final WriterPreferenceReadWriteLock.WriterLock writerLock_
public Sync writeLock()
ReadWriteLock
writeLock
in interface ReadWriteLock
public Sync readLock()
ReadWriteLock
readLock
in interface ReadWriteLock
protected void cancelledWaitingReader()
protected void cancelledWaitingWriter()
protected boolean allowReader()
protected boolean startRead()
protected boolean startWrite()
protected boolean startReadFromNewReader()
protected boolean startWriteFromNewWriter()
protected boolean startReadFromWaitingReader()
protected boolean startWriteFromWaitingWriter()
protected WriterPreferenceReadWriteLock.Signaller endRead()
protected WriterPreferenceReadWriteLock.Signaller endWrite()
Intalio Inc. (C) 1999-2008. All rights reserved http://www.intalio.com