You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/01/31 02:36:08 UTC
[incubator-servicecomb-java-chassis] 01/03: SCB-310 replace double
check by computeIfAbsent
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git
commit f932eee312dfa8afe856df770acdd967a69557b7
Author: wujimin <wu...@huawei.com>
AuthorDate: Fri Jan 26 16:45:58 2018 +0800
SCB-310 replace double check by computeIfAbsent
---
.../servicecomb/foundation/vertx/VertxUtils.java | 23 +++++++++-------------
1 file changed, 9 insertions(+), 14 deletions(-)
diff --git a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
index 14fba7b..8a31563 100644
--- a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
+++ b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxUtils.java
@@ -21,12 +21,12 @@ import java.io.IOException;
import java.io.InputStream;
import java.lang.management.ManagementFactory;
import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import javax.xml.ws.Holder;
import org.apache.commons.io.IOUtils;
+import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
import org.apache.servicecomb.foundation.vertx.client.ClientPoolManager;
import org.apache.servicecomb.foundation.vertx.client.ClientVerticle;
import org.apache.servicecomb.foundation.vertx.stream.BufferInputStream;
@@ -61,11 +61,15 @@ public final class VertxUtils {
private static final long BLOCKED_THREAD_CHECK_INTERVAL = Long.MAX_VALUE / 2;
// key为vertx实例名称,以支撑vertx功能分组
- private static Map<String, Vertx> vertxMap = new ConcurrentHashMap<>();
+ private static Map<String, VertxImplEx> vertxMap = new ConcurrentHashMapEx<>();
private VertxUtils() {
}
+ public static Map<String, VertxImplEx> getVertxMap() {
+ return vertxMap;
+ }
+
public static <T extends AbstractVerticle> void deployVerticle(Vertx vertx, Class<T> cls, int instanceCount) {
DeploymentOptions options = new DeploymentOptions().setInstances(instanceCount);
@@ -106,18 +110,9 @@ public final class VertxUtils {
}
public static Vertx getOrCreateVertxByName(String name, VertxOptions vertxOptions) {
- Vertx vertx = getVertxByName(name);
- if (vertx == null) {
- synchronized (VertxUtils.class) {
- vertx = getVertxByName(name);
- if (vertx == null) {
- vertx = init(name, vertxOptions);
- vertxMap.put(name, vertx);
- }
- }
- }
-
- return vertx;
+ return vertxMap.computeIfAbsent(name, vertxName -> {
+ return (VertxImplEx) init(vertxName, vertxOptions);
+ });
}
public static Vertx init(VertxOptions vertxOptions) {
--
To stop receiving notification emails like this one, please contact
liubao@apache.org.