summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelsid <elsid.mail@gmail.com>2022-01-19 01:07:17 +0100
committerelsid <elsid.mail@gmail.com>2022-01-19 01:10:58 +0100
commita2002bc983fb2ed3c767f2bc81db4e0da069ca82 (patch)
treec4d6676f1e9020f651481ad8281191ff8feb39d3
parent088c4597713e56c5b612684baeaf840413060885 (diff)
Support frequency of ProgressReporter calls lower than interval
-rw-r--r--components/misc/progressreporter.hpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/components/misc/progressreporter.hpp b/components/misc/progressreporter.hpp
index 733e36191e..30d9b0ae2e 100644
--- a/components/misc/progressreporter.hpp
+++ b/components/misc/progressreporter.hpp
@@ -29,10 +29,10 @@ namespace Misc
{
const std::lock_guard lock(mMutex);
const auto now = std::chrono::steady_clock::now();
- const auto left = mNextReport - now;
- if (left.count() > 0 || provided == expected)
+ if (mNextReport > now || provided == expected)
return false;
- mNextReport += mInterval + left;
+ if (mInterval.count() > 0)
+ mNextReport = mNextReport + mInterval * ((now - mNextReport + mInterval).count() / mInterval.count());
return true;
} ();
if (shouldReport)