diff options
author | Chris Robinson <[email protected]> | 2016-05-12 19:17:08 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2016-05-12 19:17:08 -0700 |
commit | 8d14824c657a1471d08e175c8153909627313d70 (patch) | |
tree | d2a6b99c87881376a580cef0c462ca123baac192 | |
parent | 210e150601d9b458d446483f5f16e1e67cc6e3ba (diff) |
Call the effect state update method after "returning" the container object.
-rw-r--r-- | Alc/ALu.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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; } |