You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by bl...@apache.org on 2001/10/31 14:56:34 UTC
cvs commit: jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/concurrent ReadWriteLock.java
bloritsch 01/10/31 05:56:34
Modified: src/java/org/apache/avalon/excalibur/concurrent
ReadWriteLock.java
Log:
Apply fix to ReadWriteLock fromAvi Drissman (drissman@acm.org)
Revision Changes Path
1.5 +11 -4 jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/concurrent/ReadWriteLock.java
Index: ReadWriteLock.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/concurrent/ReadWriteLock.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ReadWriteLock.java 2001/08/10 17:12:52 1.4
+++ ReadWriteLock.java 2001/10/31 13:56:34 1.5
@@ -19,7 +19,7 @@
* will take priority over those trying to get a read lock.
*
* @author <a href="mailto:leo.sutic@inspireinfrastructure.com">Leo Sutic</a>
- * @version CVS $Revision: 1.4 $ $Date: 2001/08/10 17:12:52 $
+ * @version CVS $Revision: 1.5 $ $Date: 2001/10/31 13:56:34 $
* @since 4.0
*/
public class ReadWriteLock
@@ -79,12 +79,19 @@
synchronized ( m_lock )
{
m_numWaitingForWrite++;
- while ( m_numReadLocksHeld != 0 )
+ try
{
m_lock.wait();
+ while ( m_numReadLocksHeld != 0 )
+ {
+ m_lock.wait();
+ }
+ m_numReadLocksHeld = -1;
}
- m_numReadLocksHeld = -1;
- m_numWaitingForWrite--;
+ finally
+ {
+ m_numWaitingForWrite--;
+ }
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>