diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index 2c58b370..ac76baef 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -960,15 +960,17 @@ thread_local bool RpThreadInitDone = false; # ifdef TRACY_MANUAL_LIFETIME ProfilerData* s_profilerData = nullptr; +static ProfilerThreadData& GetProfilerThreadData(); TRACY_API void StartupProfiler() { s_profilerData = (ProfilerData*)tracy_malloc( sizeof( ProfilerData ) ); new (s_profilerData) ProfilerData(); s_profilerData->profiler.SpawnWorkerThreads(); + GetProfilerThreadData().token = ProducerWrapper( *s_profilerData ); } static ProfilerData& GetProfilerData() { - assert(s_profilerData); + assert( s_profilerData ); return *s_profilerData; } TRACY_API void ShutdownProfiler() @@ -977,6 +979,8 @@ TRACY_API void ShutdownProfiler() tracy_free( s_profilerData ); s_profilerData = nullptr; rpmalloc_finalize(); + RpThreadInitDone = false; + RpInitDone.store( 0, std::memory_order_release ); } # else static std::atomic profilerDataLock { 0 };