aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2016-05-12 19:17:08 -0700
committerChris Robinson <[email protected]>2016-05-12 19:17:08 -0700
commit8d14824c657a1471d08e175c8153909627313d70 (patch)
treed2a6b99c87881376a580cef0c462ca123baac192
parent210e150601d9b458d446483f5f16e1e67cc6e3ba (diff)
Call the effect state update method after "returning" the container object.
-rw-r--r--Alc/ALu.c4
1 files changed, 2 insertions, 2 deletions
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;
}