The locking needs to be re-examined. It is mainly used for the group cache where a list of items needs to be maintained. I had it working nicely, then sort of screwed it up, then sort of fixed it . . . It shouldn't deadlock, but there might be a few cases where we could have concurrency issues.
Also, I was trying to sue a hashmap instead of a hashtable and apply a very fine grained locking. Another performance sensitive area. . . Take a look. Aaron > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > Sent: Saturday, February 16, 2002 5:26 PM > To: [EMAIL PROTECTED] > Subject: cvs commit: jakarta-turbine- > stratum/src/java/org/apache/stratum/jcs/utils/locking ReadWriteLock.java > > jtaylor 02/02/16 14:26:08 > > Modified: src/java/org/apache/stratum/jcs/utils/locking > ReadWriteLock.java > Log: > Removed waiting for console input in error condition (if debug enabled) > from ReadWriteLock. More could be done, but it might be better to make > this a wrapper to FIFOReadWriteLock from util.concurrent. Thoughts? > > Revision Changes Path > 1.2 +5 -17 jakarta-turbine- > stratum/src/java/org/apache/stratum/jcs/utils/locking/ReadWriteLock.java > > Index: ReadWriteLock.java > =================================================================== > RCS file: /home/cvs/jakarta-turbine- > stratum/src/java/org/apache/stratum/jcs/utils/locking/ReadWriteLock.java ,v > retrieving revision 1.1 > retrieving revision 1.2 > diff -u -r1.1 -r1.2 > --- ReadWriteLock.java 16 Feb 2002 19:06:35 -0000 1.1 > +++ ReadWriteLock.java 16 Feb 2002 22:26:08 -0000 1.2 > @@ -189,30 +189,18 @@ > writeLockedThread = null; > if ( waitingForReadLock > 0 ) > { > - if ( log.isDebugEnabled() ) > - { > - log.debug( "writeLock released and notify all > read lock waiting threads." ); > - } > + log.debug( "writeLock released, notified waiting > readers" ); > + > notifyAll(); > } > - else if ( log.isDebugEnabled() ) > + else > { > - log.debug( "writeLock released without fuss." ); > + log.debug( "writeLock released, no readers waiting" > ); > } > } > return; > } > - //////////////// debug MUST BE SET TO false in production! > /////////////////// > - if ( log.isDebugEnabled() ) > - { > - try > - { > - System.in.read(); > - } > - catch ( java.io.IOException ignore ) > - { > - } > - } > + > throw new IllegalStateException( "Thread does not have lock" ); > } > } > > > > > -- > To unsubscribe, e-mail: <mailto:turbine-dev- > [EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:turbine-dev- > [EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
