From ff78d71913e90d707f1e2d4b99c4e111bfaacdf4 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Tue, 24 Nov 2020 15:03:37 -0500 Subject: [PATCH] Fix shutdown with TRACY_NO_EXIT=1 on Android. --- client/TracySysTrace.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/client/TracySysTrace.cpp b/client/TracySysTrace.cpp index 004e39c8..5887c93a 100644 --- a/client/TracySysTrace.cpp +++ b/client/TracySysTrace.cpp @@ -784,6 +784,7 @@ static void SetupSampling( int64_t& samplingPeriod ) } s_ring[i].Advance( hdr.size ); } + if( !traceActive.load( std::memory_order_relaxed) ) break; if( !hadData ) { std::this_thread::sleep_for( std::chrono::milliseconds( 10 ) ); @@ -1179,10 +1180,12 @@ void SysTraceWorker( void* ptr ) close( pipefd[1] ); sched_param sp = { 4 }; pthread_setschedparam( pthread_self(), SCHED_FIFO, &sp ); + execlp( "su", "su", "root", "sh", "-c", + "cat /sys/kernel/debug/tracing/trace_pipe" #if defined __ANDROID__ && ( defined __aarch64__ || defined __ARM_ARCH ) - execlp( "su", "su", "root", "sh", "-c", "/data/tracy_systrace", (char*)nullptr ); + " || /data/tracy_systrace" #endif - execlp( "su", "su", "root", "sh", "-c", "cat /sys/kernel/debug/tracing/trace_pipe", (char*)nullptr ); + , nullptr ); exit( 1 ); } } @@ -1194,6 +1197,7 @@ void SysTraceWorker( void* ptr ) pthread_setschedparam( pthread_self(), SCHED_FIFO, &sp ); ProcessTraceLines( pipefd[0] ); close( pipefd[0] ); + waitpid( pid, nullptr, 0 ); } } }