From 22e0036b8bac9f1f941827ca12e005eae9c0466f Mon Sep 17 00:00:00 2001 From: Balder Date: Thu, 20 Jul 2023 10:30:31 +0200 Subject: [PATCH] Fix output timeout while waiting for delay buffer --- src/output/output.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/output/output.cpp b/src/output/output.cpp index 6873c383..ee79aa9f 100644 --- a/src/output/output.cpp +++ b/src/output/output.cpp @@ -1076,8 +1076,13 @@ namespace Mist{ uint64_t delayTime = JSON::Value(targetParams["pushdelay"]).asInt()*1000; if (endTime() - startTime() < delayTime){ uint64_t waitTime = delayTime - (endTime() - startTime()); + uint64_t waitTarget = Util::bootMS() + waitTime; INFO_MSG("Waiting for buffer to fill up: waiting %" PRIu64 "ms", waitTime); - Util::wait(waitTime); + while (Util::bootMS() < waitTarget && keepGoing()){ + Util::sleep(250); + meta.reloadReplacedPagesIfNeeded(); + stats(); + } if (endTime() - startTime() < delayTime){ WARN_MSG("Waited for %" PRIu64 "ms, but buffer still too small for a push delay of %" PRIu64 "ms. Doing the best we can.", waitTime, delayTime); }