Call the effect state update method after "returning" the container object.

This commit is contained in:
Chris Robinson
2016-05-12 19:17:08 -07:00
parent 210e150601
commit 8d14824c65
+2 -2
View File
@@ -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;
}