diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index 2c58b370..3096817f 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -960,11 +960,13 @@ 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() { @@ -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 };