Hi all
I am using a ReentrantReadWriteLock in Java.
My problem is to have both readers and writers waiting on the same lock:
Here is a pseudo code example of the reader scheme:
Here is a pseudo code example of the writer scheme:Code:try{ readLock.lock() read() if(there is nothing else to read){ signal the writeLock } } finally{ readLock.unlock() }
The thing is that I am not sure of how to implement the wait and signal mechanisms:Code:try{ writeLock.lock() wait until reader has nothing to read } finally{ writeLock.unlock() }
I thought of having a Condition object but each thread (Reader or Writer) owns a different Lock so I can't signal the Writer thread from the Reader thread.
(Actually the readerLock doesn't even have a Condition)
Can anyone suggest a solution?
Thanks
Guy


Reply With Quote
Bookmarks