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]

Reply via email to