aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/alState.c
diff options
context:
space:
mode:
Diffstat (limited to 'OpenAL32/alState.c')
-rw-r--r--OpenAL32/alState.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/OpenAL32/alState.c b/OpenAL32/alState.c
index 841f6f31..424a73f6 100644
--- a/OpenAL32/alState.c
+++ b/OpenAL32/alState.c
@@ -610,12 +610,14 @@ AL_API ALvoid AL_APIENTRY alDeferUpdatesSOFT(void)
src++;
}
+ ReadLock(&Context->EffectSlotMap.lock);
for(e = 0;e < Context->EffectSlotMap.size;e++)
{
ALEffectSlot = Context->EffectSlotMap.array[e].value;
if(Exchange_ALenum(&ALEffectSlot->NeedsUpdate, AL_FALSE))
ALEffect_Update(ALEffectSlot->EffectState, Context, ALEffectSlot);
}
+ ReadUnlock(&Context->EffectSlotMap.lock);
UnlockContext(Context);
}
@@ -634,6 +636,7 @@ AL_API ALvoid AL_APIENTRY alProcessUpdatesSOFT(void)
ALsizei pos;
LockContext(Context);
+ ReadLock(&Context->SourceMap.lock);
for(pos = 0;pos < Context->SourceMap.size;pos++)
{
ALsource *Source = Context->SourceMap.array[pos].value;
@@ -646,6 +649,7 @@ AL_API ALvoid AL_APIENTRY alProcessUpdatesSOFT(void)
if(new_state)
SetSourceState(Source, Context, new_state);
}
+ ReadUnlock(&Context->SourceMap.lock);
UnlockContext(Context);
}