diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c index 25693c0d9ec..bc1ca9422a4 100644 --- a/dlls/winealsa.drv/mmdevdrv.c +++ b/dlls/winealsa.drv/mmdevdrv.c @@ -219,12 +219,19 @@ static inline SessionMgr *impl_from_IAudioSessionManager2(IAudioSessionManager2 BOOL WINAPI DllMain(HINSTANCE dll, DWORD reason, void *reserved) { - if(reason == DLL_PROCESS_ATTACH){ + switch (reason) + { + case DLL_PROCESS_ATTACH: g_timer_q = CreateTimerQueue(); if(!g_timer_q) return FALSE; - } + break; + case DLL_PROCESS_DETACH: + g_sessions_lock.DebugInfo->Spare[0] = 0; + DeleteCriticalSection(&g_sessions_lock); + break; + } return TRUE; }