aboutsummaryrefslogtreecommitdiffstats
path: root/al/auxeffectslot.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2021-04-15 15:07:14 -0700
committerChris Robinson <[email protected]>2021-04-15 15:17:04 -0700
commit29cf7ebb752e00e116391a1df7a3ed0f49fdd193 (patch)
tree76b90d55cbcbae2bb3c04fc95aaef83161263ecc /al/auxeffectslot.cpp
parent92148a3a044389863601b8b907bcfc69ff77b869 (diff)
Make an inverted atomic flag type and use it
The inverted atomic flag replaces test_and_set+clear with test_and_clear+set, essentially inverting the flag status. This makes more logical sense for flagging dirty state, which is less confusing than flagging clean state. The one caveat is ATOMIC_FLAG_INIT (or default construction in C++20) initializes the state to true rather than false.
Diffstat (limited to 'al/auxeffectslot.cpp')
-rw-r--r--al/auxeffectslot.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/al/auxeffectslot.cpp b/al/auxeffectslot.cpp
index 4465e54e..7e12a070 100644
--- a/al/auxeffectslot.cpp
+++ b/al/auxeffectslot.cpp
@@ -308,7 +308,7 @@ void FreeEffectSlot(ALCcontext *context, ALeffectslot *slot)
&& slot->mState == SlotState::Playing) \
slot->updateProps(context.get()); \
else \
- slot->PropsClean.clear(std::memory_order_release); \
+ slot->mPropsDirty.set(std::memory_order_release); \
} while(0)
} // namespace
@@ -460,7 +460,7 @@ START_API_FUNC
if(slot->mState == SlotState::Playing)
return;
- slot->PropsClean.test_and_set(std::memory_order_acq_rel);
+ slot->mPropsDirty.test_and_clear(std::memory_order_acq_rel);
slot->updateProps(context.get());
AddActiveEffectSlots({&slot, 1}, context.get());
@@ -491,7 +491,7 @@ START_API_FUNC
if(slot->mState != SlotState::Playing)
{
- slot->PropsClean.test_and_set(std::memory_order_acq_rel);
+ slot->mPropsDirty.test_and_clear(std::memory_order_acq_rel);
slot->updateProps(context.get());
}
slots[i] = slot;
@@ -884,7 +884,7 @@ END_API_FUNC
ALeffectslot::ALeffectslot()
{
- PropsClean.test_and_set(std::memory_order_relaxed);
+ mPropsDirty.test_and_clear(std::memory_order_relaxed);
EffectStateFactory *factory{getFactoryByType(EffectSlotType::None)};
assert(factory != nullptr);
@@ -1004,7 +1004,7 @@ void UpdateAllEffectSlotProps(ALCcontext *context)
usemask &= ~(1_u64 << idx);
if(slot->mState != SlotState::Stopped
- && !slot->PropsClean.test_and_set(std::memory_order_acq_rel))
+ && slot->mPropsDirty.test_and_clear(std::memory_order_acq_rel))
slot->updateProps(context);
}
}