diff options
author | Chris Robinson <[email protected]> | 2020-04-07 12:46:35 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2020-04-07 12:46:35 -0700 |
commit | 024112a53afeca55216f3cb7b49579419494cea6 (patch) | |
tree | bbd92de1430d91dab86e32a61d8076ba6732a967 /alc | |
parent | 0077a0166756bf0cdd1193b0d66f8306ed909eb9 (diff) |
Use acquire-release semantics for changing deferred updates
Diffstat (limited to 'alc')
-rw-r--r-- | alc/alc.cpp | 2 | ||||
-rw-r--r-- | alc/alcontext.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/alc/alc.cpp b/alc/alc.cpp index bd88023b..31d06993 100644 --- a/alc/alc.cpp +++ b/alc/alc.cpp @@ -1621,7 +1621,7 @@ void SetDefaultChannelOrder(ALCdevice *device) void ALCcontext::processUpdates() { std::lock_guard<std::mutex> _{mPropLock}; - if(mDeferUpdates.exchange(false)) + if(mDeferUpdates.exchange(false, std::memory_order_acq_rel)) { /* Tell the mixer to stop applying updates, then wait for any active * updating to finish, before providing updates. diff --git a/alc/alcontext.h b/alc/alcontext.h index a3da7e10..d62fc7d5 100644 --- a/alc/alcontext.h +++ b/alc/alcontext.h @@ -217,7 +217,7 @@ struct ALCcontext : public al::intrusive_ref<ALCcontext> { * This does *NOT* stop mixing, but rather prevents certain property * changes from taking effect. */ - void deferUpdates() noexcept { mDeferUpdates.store(true); } + void deferUpdates() noexcept { mDeferUpdates.exchange(true, std::memory_order_acq_rel); } /** Resumes update processing after being deferred. */ void processUpdates(); |