aboutsummaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-05-21 13:29:07 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-05-21 13:29:07 +0200
commitb0999e10e63edae123aa9b4fdb968dc5c457581e (patch)
treed2e92fe6ff10ecfa0e70712d8f9795c72203e989 /messagebus
parentfb212d0abb8ed773106cbdadd68e9800b257e44a (diff)
Make the hot/cold path evident and readable.
Diffstat (limited to 'messagebus')
-rwxr-xr-xmessagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCTargetPool.java26
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);
}