diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-05-21 13:29:07 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-05-21 13:29:07 +0200 |
commit | b0999e10e63edae123aa9b4fdb968dc5c457581e (patch) | |
tree | d2e92fe6ff10ecfa0e70712d8f9795c72203e989 /messagebus | |
parent | fb212d0abb8ed773106cbdadd68e9800b257e44a (diff) |
Make the hot/cold path evident and readable.
Diffstat (limited to 'messagebus')
-rwxr-xr-x | messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCTargetPool.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCTargetPool.java b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCTargetPool.java index e681f0834a8..04d9f4ade68 100755 --- a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCTargetPool.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCTargetPool.java @@ -95,17 +95,25 @@ public class RPCTargetPool { if (target != null) { return target; } - entry.close(); - targets.remove(key); + dropTarget(entry, key); } - RPCTarget [] tmpTargets = new RPCTarget[numTargetsPerSpec]; - for (int i=0; i < tmpTargets.length; i++) { - tmpTargets[i] = new RPCTarget(spec, orb); - } - entry = new Entry(tmpTargets, now); - targets.put(key, entry); - return entry.getTarget(now); + return createAndAddTarget(orb, spec, key, now); + } + } + + private void dropTarget(Entry entry, String key) { + entry.close(); + targets.remove(key); + } + + private RPCTarget createAndAddTarget(Supervisor orb, Spec spec, String key, long now) { + RPCTarget [] tmpTargets = new RPCTarget[numTargetsPerSpec]; + for (int i=0; i < tmpTargets.length; i++) { + tmpTargets[i] = new RPCTarget(spec, orb); } + Entry entry = new Entry(tmpTargets, now); + targets.put(key, entry); + return entry.getTarget(now); } |