aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2016-05-27 19:40:54 -0700
committerChris Robinson <[email protected]>2016-05-27 19:40:54 -0700
commit800e38bac68315d372ca1f865c7c448356309f70 (patch)
tree5b7f867e3ba2fe252bb82da96aa84dd7edc8d9a5
parentc837484015e186076165515882beec389f02a987 (diff)
Use the backend lock for the effectstate's deviceUpdate call
-rw-r--r--OpenAL32/alAuxEffectSlot.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/OpenAL32/alAuxEffectSlot.c b/OpenAL32/alAuxEffectSlot.c
index 9cc86563..c37ecd58 100644
--- a/OpenAL32/alAuxEffectSlot.c
+++ b/OpenAL32/alAuxEffectSlot.c
@@ -470,24 +470,20 @@ ALenum InitializeEffect(ALCdevice *Device, ALeffectslot *EffectSlot, ALeffect *e
return AL_INVALID_ENUM;
}
State = V0(factory,create)();
- if(!State)
- return AL_OUT_OF_MEMORY;
+ if(!State) return AL_OUT_OF_MEMORY;
SetMixerFPUMode(&oldMode);
- /* FIXME: This just needs to prevent the device from being reset during
- * the state's device update, so the list lock in ALc.c should do here.
- */
- ALCdevice_Lock(Device);
+ almtx_lock(&Device->BackendLock);
State->OutBuffer = Device->Dry.Buffer;
State->OutChannels = Device->Dry.NumChannels;
if(V(State,deviceUpdate)(Device) == AL_FALSE)
{
- ALCdevice_Unlock(Device);
+ almtx_unlock(&Device->BackendLock);
RestoreFPUMode(&oldMode);
DELETE_OBJ(State);
return AL_OUT_OF_MEMORY;
}
- ALCdevice_Unlock(Device);
+ almtx_unlock(&Device->BackendLock);
RestoreFPUMode(&oldMode);
if(!effect)