diff options
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 } |