Browse Source

ZOOKEEPER-3457: Code optimization in QuorumCnxManager

more details in the [ZOOKEEPER-3457](https://issues.apache.org/jira/browse/ZOOKEEPER-3457)

Author: longqiang <l>

Reviewers: nkalmar@apache.org, andor@apache.org

Closes #1021 from finefuture/zookeeper-3457 and squashes the following commits:

312615089 [longqiang] refactor(optimize code):
541547de8 [longqiang] Merge branch 'master' of github.com:apache/zookeeper into zookeeper-3457
ea78fe88e [longqiang] refactor(optimize code):
longqiang 6 years ago
parent
commit
83940b18ce

+ 4 - 9
zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/QuorumCnxManager.java

@@ -619,15 +619,10 @@ public class QuorumCnxManager {
              /*
               * Start a new connection if doesn't have one already.
               */
-             ArrayBlockingQueue<ByteBuffer> bq = new ArrayBlockingQueue<ByteBuffer>(
-                SEND_CAPACITY);
-             ArrayBlockingQueue<ByteBuffer> oldq = queueSendMap.putIfAbsent(sid, bq);
-             if (oldq != null) {
-                 addToSendQueue(oldq, b);
-             } else {
-                 addToSendQueue(bq, b);
-             }
-             connectOne(sid);
+            ArrayBlockingQueue<ByteBuffer> bq = queueSendMap.computeIfAbsent(sid,
+                    serverId -> new ArrayBlockingQueue<>(SEND_CAPACITY));
+            addToSendQueue(bq, b);
+            connectOne(sid);
 
         }
     }