You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by bl...@apache.org on 2001/12/21 17:58:06 UTC
cvs commit: jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/pool AbstractPool.java DefaultPool.java SoftResourceLimitingPool.java
bloritsch 01/12/21 08:58:06
Modified: src/java/org/apache/avalon/excalibur/datasource
JdbcConnectionPool.java
src/java/org/apache/avalon/excalibur/pool AbstractPool.java
DefaultPool.java SoftResourceLimitingPool.java
Log:
speed up pool implementation a little, fixed some compilation errors
Revision Changes Path
1.14 +5 -10 jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/datasource/JdbcConnectionPool.java
Index: JdbcConnectionPool.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/datasource/JdbcConnectionPool.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- JdbcConnectionPool.java 2001/12/11 09:53:28 1.13
+++ JdbcConnectionPool.java 2001/12/21 16:58:06 1.14
@@ -21,7 +21,7 @@
* thread to manage the number of SQL Connections.
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Revision: 1.13 $ $Date: 2001/12/11 09:53:28 $
+ * @version CVS $Revision: 1.14 $ $Date: 2001/12/21 16:58:06 $
* @since 4.0
*/
public class JdbcConnectionPool
@@ -85,13 +85,13 @@
try
{
curMillis = System.currentTimeMillis();
- m_mutex.unlock();
+ m_mutex.release();
thread.wait( endTime - curMillis );
}
finally
{
- m_mutex.lock();
+ m_mutex.acquire();
}
try
@@ -143,17 +143,12 @@
}
try {
- m_mutex.lock();
+ m_mutex.acquire();
if (m_active.contains(obj))
{
m_active.remove(obj);
}
- if (m_ready.contains(obj))
- {
- m_ready.remove(obj);
- }
-
this.removePoolable(obj);
obj = (JdbcConnection) this.newPoolable();
@@ -170,7 +165,7 @@
}
finally
{
- m_mutex.unlock();
+ m_mutex.release();
}
}
1.7 +11 -8 jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/pool/AbstractPool.java
Index: AbstractPool.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/pool/AbstractPool.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AbstractPool.java 2001/12/11 09:53:31 1.6
+++ AbstractPool.java 2001/12/21 16:58:06 1.7
@@ -7,9 +7,12 @@
*/
package org.apache.avalon.excalibur.pool;
-import java.util.List;
import java.util.ArrayList;
-import org.apache.avalon.excalibur.concurrent.Lock;
+import java.util.List;
+
+import org.apache.avalon.excalibur.collections.Buffer;
+import org.apache.avalon.excalibur.collections.VariableSizeBuffer;
+import org.apache.avalon.excalibur.concurrent.Mutex;
import org.apache.avalon.framework.activity.Initializable;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.logger.Loggable;
@@ -20,7 +23,7 @@
* This is an <code>Pool</code> that caches Poolable objects for reuse.
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Revision: 1.6 $ $Date: 2001/12/11 09:53:31 $
+ * @version CVS $Revision: 1.7 $ $Date: 2001/12/21 16:58:06 $
* @since 4.0
*/
public abstract class AbstractPool
@@ -30,8 +33,8 @@
public static final int DEFAULT_POOL_SIZE = 8;
protected final ObjectFactory m_factory;
protected List m_active = new ArrayList();
- protected List m_ready = new ArrayList();
- protected Lock m_mutex = new Lock();
+ protected Buffer m_ready = new VariableSizeBuffer();
+ protected Mutex m_mutex = new Mutex();
protected boolean m_initialized = false;
protected int m_min;
@@ -57,7 +60,7 @@
protected void initialize()
throws Exception
{
- m_mutex.lock();
+ m_mutex.acquire();
for( int i = 0; i < AbstractPool.DEFAULT_POOL_SIZE; i++ )
{
@@ -66,7 +69,7 @@
m_initialized = true;
- m_mutex.unlock();
+ m_mutex.release();
}
@@ -139,7 +142,7 @@
{
try
{
- this.removePoolable( (Poolable) m_ready.remove( 0 ) );
+ this.removePoolable( (Poolable) m_ready.remove() );
}
catch( final Exception e )
{
1.9 +10 -10 jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/pool/DefaultPool.java
Index: DefaultPool.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/pool/DefaultPool.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- DefaultPool.java 2001/12/11 16:14:31 1.8
+++ DefaultPool.java 2001/12/21 16:58:06 1.9
@@ -16,7 +16,7 @@
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
* @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
* @author <a href="mailto:peter@apache.org">Peter Donald</a>
- * @version CVS $Revision: 1.8 $ $Date: 2001/12/11 16:14:31 $
+ * @version CVS $Revision: 1.9 $ $Date: 2001/12/21 16:58:06 $
* @since 4.0
*/
public class DefaultPool
@@ -116,7 +116,7 @@
try
{
- m_mutex.lock();
+ m_mutex.acquire();
if( m_ready.size() == 0 )
{
@@ -126,7 +126,7 @@
if ( m_ready.size() > 0 )
{
- obj = (Poolable) m_ready.remove( 0 );
+ obj = (Poolable) m_ready.remove();
}
else
{
@@ -140,7 +140,7 @@
}
else
{
- obj = (Poolable)m_ready.remove( 0 );
+ obj = (Poolable)m_ready.remove();
}
m_active.add( obj );
@@ -153,7 +153,7 @@
}
finally
{
- m_mutex.unlock();
+ m_mutex.release();
}
}
@@ -170,7 +170,7 @@
((Recyclable) obj).recycle();
}
- m_mutex.lock();
+ m_mutex.acquire();
m_active.remove( m_active.indexOf( obj ) );
@@ -202,7 +202,7 @@
}
finally
{
- m_mutex.unlock();
+ m_mutex.release();
}
}
@@ -210,11 +210,11 @@
{
try
{
- m_mutex.lock();
+ m_mutex.acquire();
while( m_ready.size() > 0 )
{
- this.removePoolable( (Poolable) m_ready.remove(0) );
+ this.removePoolable( (Poolable) m_ready.remove() );
}
}
catch (Exception e)
@@ -226,7 +226,7 @@
}
finally
{
- m_mutex.unlock();
+ m_mutex.release();
}
this.m_disposed = true;
1.8 +5 -5 jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/pool/SoftResourceLimitingPool.java
Index: SoftResourceLimitingPool.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibur/pool/SoftResourceLimitingPool.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SoftResourceLimitingPool.java 2001/12/11 09:53:32 1.7
+++ SoftResourceLimitingPool.java 2001/12/21 16:58:06 1.8
@@ -11,7 +11,7 @@
* This is an <code>Pool</code> that caches Poolable objects for reuse.
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Revision: 1.7 $ $Date: 2001/12/11 09:53:32 $
+ * @version CVS $Revision: 1.8 $ $Date: 2001/12/21 16:58:06 $
* @since 4.0
*/
public class SoftResourceLimitingPool
@@ -86,7 +86,7 @@
{
try
{
- m_mutex.lock();
+ m_mutex.acquire();
this.internalGrow(amount);
}
@@ -106,7 +106,7 @@
}
finally
{
- m_mutex.unlock();
+ m_mutex.release();
}
}
@@ -114,7 +114,7 @@
{
try
{
- m_mutex.lock();
+ m_mutex.acquire();
this.internalShrink(amount);
}
@@ -134,7 +134,7 @@
}
finally
{
- m_mutex.unlock();
+ m_mutex.release();
}
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>