From 2c780f1af40a019995a5d75a4d0d7fdd3fd2bc21 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sun, 9 Jun 2019 15:58:56 +0200 Subject: [PATCH] Allow sending immediate termination query from server. --- server/TracyWorker.cpp | 10 ++++++++-- server/TracyWorker.hpp | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 96c50642..c9f25836 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -1841,7 +1841,7 @@ void Worker::Exec() } } - m_serverQuerySpaceLeft = m_sock.GetSendBufSize() / ServerQueryPacketSize; + m_serverQuerySpaceLeft = ( m_sock.GetSendBufSize() / ServerQueryPacketSize ) - ServerQueryPacketSize; // leave space for terminate request m_hasData.store( true, std::memory_order_release ); LZ4_setStreamDecode( m_stream, nullptr, 0 ); @@ -1936,7 +1936,7 @@ close: void Worker::Query( ServerQuery type, uint64_t data ) { - ServerQueryPacket query = { type, data }; + ServerQueryPacket query { type, data }; if( m_serverQuerySpaceLeft > 0 ) { m_serverQuerySpaceLeft--; @@ -1948,6 +1948,12 @@ void Worker::Query( ServerQuery type, uint64_t data ) } } +void Worker::QueryTerminate() +{ + ServerQueryPacket query { ServerQueryTerminate, 0 }; + m_sock.Send( &query, ServerQueryPacketSize ); +} + bool Worker::DispatchProcess( const QueueItem& ev, char*& ptr ) { if( ev.hdr.idx >= (int)QueueType::StringData ) diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index f9920b17..86d85a67 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -353,6 +353,7 @@ public: private: void Exec(); void Query( ServerQuery type, uint64_t data ); + void QueryTerminate(); tracy_force_inline bool DispatchProcess( const QueueItem& ev, char*& ptr ); tracy_force_inline bool Process( const QueueItem& ev );