From e98104dac88db27bf5ed66980511f4034111e109 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sun, 29 May 2011 23:03:59 -0700 Subject: [PATCH] Avoid holding locks once the context is removed from the lists --- Alc/ALc.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/Alc/ALc.c b/Alc/ALc.c index 3c547d4a..8ba50ad8 100644 --- a/Alc/ALc.c +++ b/Alc/ALc.c @@ -2125,9 +2125,8 @@ ALC_API ALCvoid ALC_APIENTRY alcDestroyContext(ALCcontext *context) break; } } - - // Lock context - SuspendContext(context); + ProcessContext(NULL); + UnlockLists(); if(context->SourceMap.size > 0) { @@ -2152,14 +2151,8 @@ ALC_API ALCvoid ALC_APIENTRY alcDestroyContext(ALCcontext *context) context->MaxActiveSources = 0; context->ActiveSourceCount = 0; - // Unlock context - ProcessContext(context); - ProcessContext(NULL); - UnlockLists(); - ExitContext(context); - // Free memory (MUST do this after ProcessContext) memset(context, 0, sizeof(ALCcontext)); free(context); }