Author: uswick
Date: Sun Jul 13 18:14:59 2014
New Revision: 1610262
URL: http://svn.apache.org/r1610262
Log:
avoid sync overhead each time null is checked - use double checked locking
Modified:
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/connections/TargetConnections.java
Modified:
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/connections/TargetConnections.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/connections/TargetConnections.java?rev=1610262&r1=1610261&r2=1610262&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/connections/TargetConnections.java
(original)
+++
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/connections/TargetConnections.java
Sun Jul 13 18:14:59 2014
@@ -205,16 +205,16 @@ public class TargetConnections {
private HostConnections getConnectionPool(String host, int port) {
String key = host + ":" + port;
- HostConnections pool;
- synchronized (poolMap) {
- // see weather a pool already exists for this host:port
- pool = poolMap.get(key);
- if (pool == null) {
- pool = new HostConnections(host, port, maxConnections);
- poolMap.put(key, pool);
+ if (!poolMap.containsKey(key)) {
+ synchronized (poolMap) {
+ // see weather a pool already exists for this host:port
+ if (!poolMap.containsKey(key)) {
+ HostConnections pool = new HostConnections(host, port,
maxConnections);
+ poolMap.put(key, pool);
+ }
}
}
- return pool;
+ return poolMap.get(key);
}
}