diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-02-25 11:59:48 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-02-25 12:01:33 +0100 |
commit | 18f5135304f12fcbd930797a53c891f6219ab4ba (patch) | |
tree | 1c4701abebbb7c85811410d374add90f42574666 /messagebus | |
parent | 484861ffd79e943ec9dcacd5b02aab8e6b91709d (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.java | 1 | ||||
-rwxr-xr-x | messagebus/src/main/java/com/yahoo/messagebus/Messenger.java | 12 |
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."); } } |