You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sa...@apache.org on 2006/04/19 03:43:58 UTC
svn commit: r395102 - in
/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl:
GenericKeyedObjectPool.java GenericObjectPool.java
SoftReferenceObjectPool.java StackKeyedObjectPool.java StackObjectPool.java
Author: sandymac
Date: Tue Apr 18 18:43:56 2006
New Revision: 395102
URL: http://svn.apache.org/viewcvs?rev=395102&view=rev
Log:
The calls to BaseObjectPool.close() and BaseKeyedObjectPool.close() should not
by synchronized. Those methods are implicitly thread-safe and requiring
synchronization while calling them can introduce a high latency while trying to
close a pool when a slow [Keyed]PoolableObjectFactory is being used, eg: one
that does network IO.
Modified:
jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java
jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java
jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java
jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java
jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java
Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java?rev=395102&r1=395101&r2=395102&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericKeyedObjectPool.java Tue Apr 18 18:43:56 2006
@@ -1160,13 +1160,15 @@
}
}
- public synchronized void close() throws Exception {
- clear();
- if (null != _evictor) {
- _evictor.cancel();
- _evictor = null;
- }
+ public void close() throws Exception {
super.close();
+ synchronized (this) {
+ clear();
+ if (null != _evictor) {
+ _evictor.cancel();
+ _evictor = null;
+ }
+ }
}
public synchronized void setFactory(KeyedPoolableObjectFactory factory) throws IllegalStateException {
Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java?rev=395102&r1=395101&r2=395102&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java Tue Apr 18 18:43:56 2006
@@ -971,10 +971,12 @@
}
}
- public synchronized void close() throws Exception {
- clear();
- startEvictor(-1L);
+ public void close() throws Exception {
super.close();
+ synchronized (this) {
+ clear();
+ startEvictor(-1L);
+ }
}
/**
Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java?rev=395102&r1=395101&r2=395102&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/SoftReferenceObjectPool.java Tue Apr 18 18:43:56 2006
@@ -234,9 +234,9 @@
pruneClearedReferences();
}
- public synchronized void close() throws Exception {
- clear();
+ public void close() throws Exception {
super.close();
+ clear();
}
/**
Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java?rev=395102&r1=395101&r2=395102&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackKeyedObjectPool.java Tue Apr 18 18:43:56 2006
@@ -401,9 +401,9 @@
*
* @throws Exception <strong>deprecated</strong>: implementations should silently fail if not all resources can be freed.
*/
- public synchronized void close() throws Exception {
- clear();
+ public void close() throws Exception {
super.close();
+ clear();
}
/**
Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java?rev=395102&r1=395101&r2=395102&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/StackObjectPool.java Tue Apr 18 18:43:56 2006
@@ -274,9 +274,9 @@
*
* @throws Exception <strong>deprecated</strong>: implementations should silently fail if not all resources can be freed.
*/
- public synchronized void close() throws Exception {
- clear();
+ public void close() throws Exception {
super.close();
+ clear();
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org