aboutsummaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-02-25 11:59:48 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2022-02-25 12:01:33 +0100
commit18f5135304f12fcbd930797a53c891f6219ab4ba (patch)
tree1c4701abebbb7c85811410d374add90f42574666 /messagebus
parent484861ffd79e943ec9dcacd5b02aab8e6b91709d (diff)
- Only wait with timeout if you have any recurring tasks to execute.
- Increase timeout from 10 -> 100 milliseconds. - Also consider the VESPA_TIMER_HZ control of timer frequency.
Diffstat (limited to 'messagebus')
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java1
-rwxr-xr-xmessagebus/src/main/java/com/yahoo/messagebus/Messenger.java12
2 files changed, 9 insertions, 4 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java b/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java
index 8611801b9a9..949c304af4c 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java
@@ -95,7 +95,6 @@ public class MessageBus implements ConfigHandler, NetworkOwner, MessageHandler,
}
}
try {
-
Thread.sleep(10);
} catch (InterruptedException e) {
return;
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java b/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java
index f2ebbbe76cb..478cb7554ee 100755
--- a/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/Messenger.java
@@ -1,6 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.messagebus;
+import com.yahoo.concurrent.SystemTimer;
+
import java.util.logging.Level;
import java.util.ArrayDeque;
@@ -147,12 +149,17 @@ public class Messenger implements Runnable {
@Override
public void run() {
+ int timeoutMS = 100*1000/SystemTimer.detectHz();
while (true) {
Task task = null;
synchronized (this) {
if (queue.isEmpty()) {
try {
- wait(10);
+ if (children.isEmpty()) {
+ wait();
+ } else {
+ wait(timeoutMS);
+ }
} catch (final InterruptedException e) {
continue;
}
@@ -173,8 +180,7 @@ public class Messenger implements Runnable {
try {
task.destroy();
} catch (final Exception e) {
- log.warning("An exception was thrown while destroying " + task.getClass().getName() + ": " +
- e.toString());
+ log.warning("An exception was thrown while destroying " + task.getClass().getName() + ": " + e);
log.warning("Someone, somewhere might have to wait indefinitely for something.");
}
}