1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Terminate connection handshake.

This commit is contained in:
Bartosz Taudul
2017-10-18 18:48:51 +02:00
parent d942b7edf1
commit 7c47edc64f
6 changed files with 86 additions and 18 deletions
+26
View File
@@ -76,6 +76,7 @@ View::View( const char* addr )
, m_drawZones( true )
, m_drawLocks( true )
, m_drawPlots( true )
, m_terminate( false )
{
assert( s_instance == nullptr );
s_instance = this;
@@ -109,6 +110,7 @@ View::View( FileRead& f )
, m_drawZones( true )
, m_drawLocks( true )
, m_drawPlots( true )
, m_terminate( false )
{
assert( s_instance == nullptr );
s_instance = this;
@@ -384,6 +386,27 @@ void View::Worker()
t0 = t1;
bytes = 0;
}
if( m_terminate )
{
if( !m_pendingStrings.empty() || !m_pendingThreads.empty() || !m_pendingSourceLocation.empty() ||
!m_pendingCustomStrings.empty() || !m_pendingPlots.empty() || !m_pendingMessages.empty() )
{
continue;
}
bool done = true;
for( auto& v : m_zoneStack )
{
if( !v.second.empty() )
{
done = false;
break;
}
}
if( !done ) continue;
ServerQuery( ServerQueryTerminate, 0 );
break;
}
}
close:
@@ -519,6 +542,9 @@ void View::Process( const QueueItem& ev )
case QueueType::MessageLiteral:
ProcessMessage( ev.message, true );
break;
case QueueType::Terminate:
m_terminate = true;
break;
default:
assert( false );
break;