From eedb2cfbbe928b99a8283fea16f0d22b41cf80d0 Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Fri, 26 Apr 2024 14:43:40 +0200 Subject: miscellaneous minor bugfixes (#66) this change addresses some TSAN warnings for improved robustness and less TSAN noise - Added dedicated timer for EnqueueStateExitFlagTimer - Made log formatter `fullformatter` output consistent time stamps across threads - Made Linux/Mac event implementation TSAN clean --- src/zencore/thread.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/zencore/thread.cpp') diff --git a/src/zencore/thread.cpp b/src/zencore/thread.cpp index 06093d6b0..329e17eea 100644 --- a/src/zencore/thread.cpp +++ b/src/zencore/thread.cpp @@ -153,10 +153,10 @@ Event::Event() m_EventHandle = CreateEvent(nullptr, bManualReset, bInitialState, nullptr); #else ZEN_UNUSED(bManualReset); - auto* Inner = new EventInner(); + auto* Inner = new EventInner(); + std::unique_lock Lock(Inner->Mutex); Inner->bSet = bInitialState; m_EventHandle = Inner; - std::atomic_thread_fence(std::memory_order_release); #endif } @@ -208,9 +208,8 @@ Event::Close() { std::unique_lock Lock(Inner->Mutex); Inner->bSet.store(true); + m_EventHandle = nullptr; } - m_EventHandle = nullptr; - std::atomic_thread_fence(std::memory_order_release); delete Inner; #endif } -- cgit v1.2.3