Avoid an unnecessary lock when retrieving the current context

This commit is contained in:
Chris Robinson
2011-06-15 23:22:34 -07:00
parent 2081228055
commit d702cb9b49
+12 -4
View File
@@ -2283,12 +2283,20 @@ ALC_API ALCvoid ALC_APIENTRY alcDestroyContext(ALCcontext *context)
*/
ALC_API ALCcontext* ALC_APIENTRY alcGetCurrentContext(ALCvoid)
{
ALCcontext *pContext;
ALCcontext *Context;
if((pContext=GetContextSuspended()) != NULL)
ProcessContext(pContext);
LockLists();
Context = tls_get(LocalContext);
if(Context && !IsContext(Context))
{
tls_set(LocalContext, NULL);
Context = NULL;
}
if(!Context)
Context = GlobalContext;
UnlockLists();
return pContext;
return Context;
}
/*