Module: wine Branch: master Commit: 4c8ed8d104bcdb6cb71bc9a73d1d7dd6e9a2f6bc URL: http://source.winehq.org/git/wine.git/?a=commit;h=4c8ed8d104bcdb6cb71bc9a73d...
Author: Andrew Eikum aeikum@codeweavers.com Date: Fri Sep 11 10:55:50 2015 -0500
xaudio2: Don't keep running after master voice is destroyed.
---
dlls/xaudio2_7/xaudio_dll.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c index 739c919..ce7a15b 100644 --- a/dlls/xaudio2_7/xaudio_dll.c +++ b/dlls/xaudio2_7/xaudio_dll.c @@ -1188,6 +1188,8 @@ static void WINAPI XA2M_DestroyVoice(IXAudio2MasteringVoice *iface) return; }
+ This->running = FALSE; + IAudioRenderClient_Release(This->render); This->render = NULL;
@@ -3068,11 +3070,13 @@ static DWORD WINAPI engine_threadproc(void *arg) if(This->stop_engine) break;
- if(!This->running) - continue; - EnterCriticalSection(&This->lock);
+ if(!This->running || !This->aclient){ + LeaveCriticalSection(&This->lock); + continue; + } + do_engine_tick(This);
LeaveCriticalSection(&This->lock);