summaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-12 17:36:49 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-04-12 17:36:49 +0200
commitbf9e3dd858e73e2670b0d99a33ac7d9e421b550b (patch)
tree2c1af291e4cef5f95bdd86461e30c4243ce43ced /messagebus
parentaa24d7828140ceaeb2e73aa78fdf12d3cad8e1bb (diff)
Take the time outside of the synchronized section.
Diffstat (limited to 'messagebus')
-rwxr-xr-xmessagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java b/messagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java
index 49419052f8f..ba2e8845e63 100755
--- a/messagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/routing/Resender.java
@@ -87,8 +87,9 @@ public class Resender {
node.getTrace().trace(TraceLevel.COMPONENT,
"Message scheduled for retry " + retry + " in " + delay + " seconds.");
msg.setRetry(retry);
+ Entry entry = new Entry(node, SystemTimer.INSTANCE.milliTime() + (long) (delay * 1000));
synchronized (queue) {
- queue.add(new Entry(node, SystemTimer.INSTANCE.milliTime() + (long) (delay * 1000)));
+ queue.add(entry);
}
return true;
}
@@ -98,10 +99,11 @@ public class Resender {
*/
public void resendScheduled() {
List<RoutingNode> sendList;
+
+ long now = SystemTimer.INSTANCE.milliTime();
synchronized (queue) {
if (queue.isEmpty()) return;
sendList = new LinkedList<>();
- long now = SystemTimer.INSTANCE.milliTime();
while (!queue.isEmpty() && queue.peek().time <= now) {
sendList.add(queue.poll().node);
}