From 6a9caabc63f7fd935a0b09402fcce9cb71d3b7a7 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Tue, 10 Jul 2018 22:37:39 +0200 Subject: [PATCH] Send on-demand initial payload message. --- client/TracyProfiler.cpp | 9 ++++++++- common/TracyProtocol.hpp | 8 ++++++++ server/TracyWorker.cpp | 6 ++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index fd36123f..8d998950 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -299,8 +299,15 @@ void Profiler::Worker() m_isConnected.store( true, std::memory_order_relaxed ); #endif - m_sock->Send( &welcome, sizeof( welcome ) ); LZ4_resetStream( m_stream ); + m_sock->Send( &welcome, sizeof( welcome ) ); + +#ifdef TRACY_ON_DEMAND + OnDemandPayloadMessage onDemand; + onDemand.frames = m_frameCount.load( std::memory_order_relaxed ); + + m_sock->Send( &onDemand, sizeof( onDemand ) ); +#endif int keepAlive = 0; for(;;) diff --git a/common/TracyProtocol.hpp b/common/TracyProtocol.hpp index 4612a9cf..558f9023 100644 --- a/common/TracyProtocol.hpp +++ b/common/TracyProtocol.hpp @@ -44,6 +44,14 @@ struct WelcomeMessage enum { WelcomeMessageSize = sizeof( WelcomeMessage ) }; + +struct OnDemandPayloadMessage +{ + uint64_t frames; +}; + +enum { OnDemandPayloadMessageSize = sizeof( OnDemandPayloadMessage ) }; + #pragma pack() } diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 8ab74abe..b16baa0e 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -990,6 +990,12 @@ void Worker::Exec() char tmp[1024]; sprintf( tmp, "%s @ %s", welcome.programName, dtmp ); m_captureName = tmp; + + if( welcome.onDemand != 0 ) + { + OnDemandPayloadMessage onDemand; + if( !m_sock.Read( &onDemand, sizeof( onDemand ), &tv, ShouldExit ) ) goto close; + } } m_hasData.store( true, std::memory_order_release );