From 92fb197aac5174ddd4347aa89383da727c7d58d6 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Mon, 31 May 2021 02:22:13 +0200 Subject: [PATCH] Use weak compare, yield thread. --- client/TracyProfiler.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index bad57ef5..3de17c07 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -64,6 +64,7 @@ #include "../common/TracyAlign.hpp" #include "../common/TracySocket.hpp" #include "../common/TracySystem.hpp" +#include "../common/TracyYield.hpp" #include "../common/tracy_lz4.hpp" #include "tracy_rpmalloc.hpp" #include "TracyCallstack.hpp" @@ -1030,7 +1031,7 @@ static ProfilerData& GetProfilerData() if( !ptr ) { int expected = 0; - while( !profilerDataLock.compare_exchange_strong( expected, 1, std::memory_order_release, std::memory_order_relaxed ) ) { expected = 0; } + while( !profilerDataLock.compare_exchange_weak( expected, 1, std::memory_order_release, std::memory_order_relaxed ) ) { expected = 0; YieldThread(); } ptr = profilerData.load( std::memory_order_acquire ); if( !ptr ) {