diff --git a/Alc/ALu.c b/Alc/ALu.c index a555b834..6f4db05e 100644 --- a/Alc/ALu.c +++ b/Alc/ALu.c @@ -362,8 +362,6 @@ static ALboolean CalcEffectSlotParams(ALeffectslot *slot, ALCdevice *device) &props->State, slot->Params.EffectState, almemory_order_relaxed ); - V(slot->Params.EffectState,update)(device, slot); - /* WARNING: A livelock is theoretically possible if another thread keeps * changing the freelist head without giving this a chance to actually swap * in the old container (practically impossible with this little code, @@ -375,6 +373,8 @@ static ALboolean CalcEffectSlotParams(ALeffectslot *slot, ALCdevice *device) } while(ATOMIC_COMPARE_EXCHANGE_WEAK(struct ALeffectslotProps*, &slot->FreeList, &first, props) == 0); + V(slot->Params.EffectState,update)(device, slot); + return AL_TRUE; }