Wait on HasData condition to avoid infinite loop.

Tracy worker resets the IsConnected to false when finishing the
capture. If it finishes too quick, the waiting loop in capture.cpp
might never see IsConnected = true.
This commit is contained in:
Che-Yu Wu 2023-01-25 05:32:19 +00:00
parent d47122586c
commit ceb474e072

View File

@ -159,7 +159,7 @@ int main( int argc, char** argv )
printf( "Connecting to %s:%i...", address, port );
fflush( stdout );
tracy::Worker worker( address, port );
while( !worker.IsConnected() )
while( !worker.HasData() )
{
const auto handshake = worker.GetHandshakeStatus();
if( handshake == tracy::HandshakeProtocolMismatch )
@ -179,7 +179,6 @@ int main( int argc, char** argv )
}
std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) );
}
while( !worker.HasData() ) std::this_thread::sleep_for( std::chrono::milliseconds( 100 ) );
printf( "\nQueue delay: %s\nTimer resolution: %s\n", tracy::TimeToString( worker.GetDelay() ), tracy::TimeToString( worker.GetResolution() ) );
#ifdef _WIN32