From fcf71118726fa698a5ce44c1d5b4f6f648dae9a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Thu, 29 Mar 2018 11:56:44 -0400 Subject: [PATCH] scheduler: avoid possible overflow with buggy stdlib --- src/dhtrunner.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp index adeb5a06..afb17efb 100644 --- a/src/dhtrunner.cpp +++ b/src/dhtrunner.cpp @@ -120,7 +120,8 @@ DhtRunner::run(const SockAddr& local4, const SockAddr& local6, DhtRunner::Config } catch (const dht::SocketException& e) { startNetwork(local4, local6); } - cv.wait_until(lk, wakeup, [this]() { + + auto hasJobToDo = [this]() { if (not running) return true; { @@ -137,7 +138,11 @@ DhtRunner::run(const SockAddr& local4, const SockAddr& local6, DhtRunner::Config return true; } return false; - }); + }; + if (wakeup == time_point::max()) + cv.wait(lk, hasJobToDo); + else + cv.wait_until(lk, wakeup, hasJobToDo); } }); } -- GitLab