diff options
| author | Stefan Boberg <[email protected]> | 2024-04-26 14:43:40 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-04-26 14:43:40 +0200 |
| commit | eedb2cfbbe928b99a8283fea16f0d22b41cf80d0 (patch) | |
| tree | b0d50b7b7a07b347c246d6fee4a0ed311f13eb37 /src/zencore/thread.cpp | |
| parent | oplog iterate chunks content type (#65) (diff) | |
| download | zen-eedb2cfbbe928b99a8283fea16f0d22b41cf80d0.tar.xz zen-eedb2cfbbe928b99a8283fea16f0d22b41cf80d0.zip | |
miscellaneous minor bugfixes (#66)v5.5.0
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
Diffstat (limited to 'src/zencore/thread.cpp')
| -rw-r--r-- | src/zencore/thread.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
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 } |