Author: fhanik Date: Tue Oct 28 19:15:35 2008 New Revision: 708753 URL: http://svn.apache.org/viewvc?rev=708753&view=rev Log: Fix the performance issue, don't count down until the lock has been released, this allows for much more concurrency
Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java Modified: tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java URL: http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java?rev=708753&r1=708752&r2=708753&view=diff ============================================================================== --- tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java (original) +++ tomcat/trunk/modules/jdbc-pool/java/org/apache/tomcat/jdbc/pool/FairBlockingQueue.java Tue Oct 28 19:15:35 2008 @@ -50,17 +50,18 @@ public boolean offer(E e) { final ReentrantLock lock = this.lock; lock.lock(); + ExchangeCountDownLatch<E> c = null; try { if (waiters.size() > 0) { - ExchangeCountDownLatch<E> c = waiters.poll(); + c = waiters.poll(); c.setItem(e); - c.countDown(); } else { items.add(e); } } finally { lock.unlock(); } + if (c!=null) c.countDown(); return true; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]