diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2019-07-01 16:39:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-01 16:39:28 +0200 |
commit | b6241e25aaefb59ee9b0251ce7284175fe647592 (patch) | |
tree | 6b114ed02f3610f274a8c692416f01a3c5bfcfd1 | |
parent | 6ff34be2071fac5bc838cc3d2f9deb36170f9ab1 (diff) | |
parent | 18384705a5e7426a2c808a37f3c1e216dcb6ebd4 (diff) |
Merge pull request #9935 from vespa-engine/havardpe/improve-small-rpc-timeouts
round -> ceil to avoid premature timeout
-rw-r--r-- | fnet/src/vespa/fnet/scheduler.cpp | 3 | ||||
-rw-r--r-- | jrt/src/com/yahoo/jrt/Scheduler.java | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/fnet/src/vespa/fnet/scheduler.cpp b/fnet/src/vespa/fnet/scheduler.cpp index 6c8340c1ff8..d9229cd4843 100644 --- a/fnet/src/vespa/fnet/scheduler.cpp +++ b/fnet/src/vespa/fnet/scheduler.cpp @@ -3,6 +3,7 @@ #include "scheduler.h" #include "task.h" #include <sstream> +#include <cmath> #include <vespa/log/log.h> LOG_SETUP(".fnet.scheduler"); @@ -68,7 +69,7 @@ FNET_Scheduler::~FNET_Scheduler() void FNET_Scheduler::Schedule(FNET_Task *task, double seconds) { - uint32_t ticks = 1 + (uint32_t) (seconds * (1000 / SLOT_TICK) + 0.5); + uint32_t ticks = 1 + (uint32_t) std::ceil(seconds * (1000.0 / SLOT_TICK)); std::lock_guard<std::mutex> guard(_lock); if (!task->_killed) { diff --git a/jrt/src/com/yahoo/jrt/Scheduler.java b/jrt/src/com/yahoo/jrt/Scheduler.java index 57b5ac43cea..ae5a827076e 100644 --- a/jrt/src/com/yahoo/jrt/Scheduler.java +++ b/jrt/src/com/yahoo/jrt/Scheduler.java @@ -61,7 +61,7 @@ class Scheduler { if (seconds < 0.0) { throw new IllegalArgumentException("cannot schedule a Task in the past"); } - int ticks = 1 + (int) (seconds * 10.0 + 0.5); + int ticks = 1 + (int) Math.ceil(seconds * (1000.0 / TICK)); if (isActive(task)) { linkOut(task); } |