From 793a2454adfb27abaf2403e4461b2a1f039bdea3 Mon Sep 17 00:00:00 2001 From: SChernykh <sergey.v.chernykh@gmail.com> Date: Sat, 10 Oct 2020 17:00:30 +0200 Subject: [PATCH] Fixed total hashrate update Don't add data points where one of the threads doesn't have hashrate data yet. --- src/backend/common/Workers.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/backend/common/Workers.cpp b/src/backend/common/Workers.cpp index 89c44a77b..419d4fb83 100644 --- a/src/backend/common/Workers.cpp +++ b/src/backend/common/Workers.cpp @@ -143,6 +143,7 @@ void xmrig::Workers<T>::tick(uint64_t) return; } + bool totalAvailable = true; uint64_t totalHashCount = 0; for (Thread<T> *handle : m_workers) { @@ -150,11 +151,16 @@ void xmrig::Workers<T>::tick(uint64_t) uint64_t hashCount, timeStamp; handle->worker()->getHashrateData(hashCount, timeStamp); d_ptr->hashrate->add(handle->id() + 1, hashCount, timeStamp); - totalHashCount += handle->worker()->rawHashes(); + + const uint64_t n = handle->worker()->rawHashes(); + if (n == 0) { + totalAvailable = false; + } + totalHashCount += n; } } - if (totalHashCount > 0) { + if (totalAvailable) { d_ptr->hashrate->add(0, totalHashCount, Chrono::steadyMSecs()); } }