mirror of
https://github.com/wolfpld/tracy.git
synced 2025-03-20 07:40:02 +08:00
Allow crash event reporting.
When crash happens there's no longer anything to profile -- don't wait for unfinished zones to finish before sending client terminate confirmation.
This commit is contained in:
+14
-6
@@ -192,6 +192,7 @@ Worker::Worker( const char* addr )
|
||||
, m_hasData( false )
|
||||
, m_shutdown( false )
|
||||
, m_terminate( false )
|
||||
, m_crashed( false )
|
||||
, m_stream( LZ4_createStreamDecode() )
|
||||
, m_buffer( new char[TargetFrameSize*3 + 1] )
|
||||
, m_bufferOffset( 0 )
|
||||
@@ -220,6 +221,7 @@ Worker::Worker( FileRead& f, EventType::Type eventMask )
|
||||
, m_hasData( true )
|
||||
, m_shutdown( false )
|
||||
, m_terminate( false )
|
||||
, m_crashed( false )
|
||||
, m_stream( nullptr )
|
||||
, m_buffer( nullptr )
|
||||
{
|
||||
@@ -1315,16 +1317,19 @@ void Worker::Exec()
|
||||
{
|
||||
continue;
|
||||
}
|
||||
bool done = true;
|
||||
for( auto& v : m_data.threads )
|
||||
if( !m_crashed )
|
||||
{
|
||||
if( !v->stack.empty() )
|
||||
bool done = true;
|
||||
for( auto& v : m_data.threads )
|
||||
{
|
||||
done = false;
|
||||
break;
|
||||
if( !v->stack.empty() )
|
||||
{
|
||||
done = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if( !done ) continue;
|
||||
}
|
||||
if( !done ) continue;
|
||||
ServerQuery( ServerQueryTerminate, 0 );
|
||||
break;
|
||||
}
|
||||
@@ -1921,6 +1926,9 @@ void Worker::Process( const QueueItem& ev )
|
||||
break;
|
||||
case QueueType::KeepAlive:
|
||||
break;
|
||||
case QueueType::Crash:
|
||||
m_crashed = true;
|
||||
break;
|
||||
default:
|
||||
assert( false );
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user