From d5881e23b654b79587a46fa192d649c077548a38 Mon Sep 17 00:00:00 2001 From: JIA-ss <627723154@qq.com> Date: Wed, 21 Jul 2021 21:53:29 +0800 Subject: [PATCH] bug fix: Under unity, the dll will not be completely uninstalled, so the stack and the heap content of the thread need to be refreshed --- client/TracyProfiler.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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 };