From 8fa0a4dc9ee0f37fbadce1e55abd35df1bd7df90 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Wed, 29 Apr 2020 02:36:38 +0200 Subject: [PATCH] Update mbps data block after terminating connection. --- server/TracyWorker.cpp | 25 +++++++++++++++++-------- server/TracyWorker.hpp | 2 ++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index f27e3269..39df5740 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -3018,14 +3018,7 @@ void Worker::Exec() enum { MbpsUpdateTime = 200 }; if( td > MbpsUpdateTime ) { - const auto bytes = m_bytes.exchange( 0, std::memory_order_relaxed ); - const auto decBytes = m_decBytes.exchange( 0, std::memory_order_relaxed ); - std::lock_guard lock( m_mbpsData.lock ); - m_mbpsData.mbps.erase( m_mbpsData.mbps.begin() ); - m_mbpsData.mbps.emplace_back( bytes / ( td * 125.f ) ); - m_mbpsData.compRatio = float( bytes ) / decBytes; - m_mbpsData.queue = m_serverQueryQueue.size(); - m_mbpsData.transferred += bytes; + UpdateMbps( td ); t0 = t1; } @@ -3053,6 +3046,7 @@ void Worker::Exec() if( !done ) continue; } QueryTerminate(); + UpdateMbps( 0 ); break; } } @@ -3064,6 +3058,21 @@ close: m_connected.store( false, std::memory_order_relaxed ); } +void Worker::UpdateMbps( int64_t td ) +{ + const auto bytes = m_bytes.exchange( 0, std::memory_order_relaxed ); + const auto decBytes = m_decBytes.exchange( 0, std::memory_order_relaxed ); + std::lock_guard lock( m_mbpsData.lock ); + if( td != 0 ) + { + m_mbpsData.mbps.erase( m_mbpsData.mbps.begin() ); + m_mbpsData.mbps.emplace_back( bytes / ( td * 125.f ) ); + } + m_mbpsData.compRatio = float( bytes ) / decBytes; + m_mbpsData.queue = m_serverQueryQueue.size(); + m_mbpsData.transferred += bytes; +} + bool Worker::IsThreadStringRetrieved( uint64_t id ) { const auto name = GetThreadName( m_failureData.thread ); diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index 6f320837..c1aff82d 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -735,6 +735,8 @@ private: tracy_force_inline ZoneExtra& AllocZoneExtra( ZoneEvent& ev ); tracy_force_inline ZoneExtra& RequestZoneExtra( ZoneEvent& ev ); + void UpdateMbps( int64_t td ); + int64_t ReadTimeline( FileRead& f, Vector>& vec, uint32_t size, int64_t refTime, int32_t& childIdx ); void ReadTimelinePre063( FileRead& f, Vector>& vec, uint64_t size, int64_t& refTime, int32_t& childIdx, int fileVer ); void ReadTimeline( FileRead& f, Vector>& vec, uint64_t size, int64_t& refTime, int64_t& refGpuTime, int32_t& childIdx );