From 3baeb4aef6569e643bcf84e1b457008f781dfa8e Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sat, 29 Oct 2011 07:01:29 -0700 Subject: [PATCH] Unset the thread-local context when the thread is detached without concurrent OpenAL support --- dsound_main.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dsound_main.c b/dsound_main.c index 8e244b8f6cc..40c9bac25ee 100644 --- a/dsound_main.c +++ b/dsound_main.c @@ -1017,17 +1017,26 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved) TRACE("DLL_PROCESS_ATTACH\n"); instance = hInstDLL; load_libopenal(); - DisableThreadLibraryCalls(hInstDLL); /* Increase refcount on dsound by 1 */ GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (LPCWSTR)hInstDLL, &hInstDLL); break; + + case DLL_THREAD_DETACH: + TRACE("DLL_THREAD_DETACH\n"); +#if !ALLOW_CONCURRENT_AL + if(local_contexts) + set_context(NULL); +#endif + break; + case DLL_PROCESS_DETACH: TRACE("DLL_PROCESS_DETACH\n"); #ifdef SONAME_LIBOPENAL if(openal_handle) wine_dlclose(openal_handle, NULL, 0); -#endif /*SONAME_LIBOPENAL*/ +#endif break; + default: TRACE("UNKNOWN REASON\n"); break; -- 2.11.4.GIT