From c973735b49978e8aa266f318bc62cff63286ff41 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Tue, 10 Jul 2018 21:50:00 +0200 Subject: [PATCH] Track connection status. --- client/TracyProfiler.cpp | 11 +++++++++++ client/TracyProfiler.hpp | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index aca574d5..5e3b57b0 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -198,6 +198,9 @@ Profiler::Profiler() , m_lz4Buf( (char*)tracy_malloc( LZ4Size + sizeof( lz4sz_t ) ) ) , m_serialQueue( 1024*1024 ) , m_serialDequeue( 1024*1024 ) +#ifdef TRACY_ON_DEMAND + , m_isConnected( false ) +#endif { assert( !s_instance ); s_instance = this; @@ -290,6 +293,10 @@ void Profiler::Worker() if( m_sock ) break; } +#ifdef TRACY_ON_DEMAND + m_isConnected.store( true, std::memory_order_relaxed ); +#endif + m_sock->Send( &welcome, sizeof( welcome ) ); LZ4_resetStream( m_stream ); @@ -335,6 +342,10 @@ void Profiler::Worker() } } if( ShouldExit() ) break; + +#ifdef TRACY_ON_DEMAND + m_isConnected.store( false, std::memory_order_relaxed ); +#endif } for(;;) diff --git a/client/TracyProfiler.hpp b/client/TracyProfiler.hpp index 7b1a102d..ce2c5f1d 100644 --- a/client/TracyProfiler.hpp +++ b/client/TracyProfiler.hpp @@ -287,6 +287,13 @@ public: static bool ShouldExit(); +#ifdef TRACY_ON_DEMAND + tracy_force_inline bool IsConnected() + { + return m_isConnected.load( std::memory_order_relaxed ); + } +#endif + private: enum DequeueStatus { Success, ConnectionLost, QueueEmpty }; @@ -377,6 +384,10 @@ private: FastVector m_serialQueue, m_serialDequeue; NonRecursiveBenaphore m_serialLock; + +#ifdef TRACY_ON_DEMAND + std::atomic m_isConnected; +#endif }; };