Erich E. Hoover : quartz: Fix race condition on EndFlush between csRenderLock and filter.csFilter.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Aug 5 18:03:07 CDT 2014


Module: wine
Branch: master
Commit: ee94725c8ea49a42130954a49a7c8b2ab3359c3b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ee94725c8ea49a42130954a49a7c8b2ab3359c3b

Author: Erich E. Hoover <erich.e.hoover at gmail.com>
Date:   Thu Jul 17 10:31:17 2014 -0600

quartz: Fix race condition on EndFlush between csRenderLock and filter.csFilter.

---

 dlls/quartz/videorenderer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/quartz/videorenderer.c b/dlls/quartz/videorenderer.c
index 4e8f359..571a19d 100644
--- a/dlls/quartz/videorenderer.c
+++ b/dlls/quartz/videorenderer.c
@@ -374,11 +374,11 @@ static HRESULT WINAPI VideoRenderer_EndFlush(BaseRenderer* iface)
     if (This->renderer.pMediaSample) {
         ResetEvent(This->hEvent);
         LeaveCriticalSection(iface->pInputPin->pin.pCritSec);
-        LeaveCriticalSection(&iface->csRenderLock);
         LeaveCriticalSection(&iface->filter.csFilter);
+        LeaveCriticalSection(&iface->csRenderLock);
         WaitForSingleObject(This->hEvent, INFINITE);
-        EnterCriticalSection(&iface->filter.csFilter);
         EnterCriticalSection(&iface->csRenderLock);
+        EnterCriticalSection(&iface->filter.csFilter);
         EnterCriticalSection(iface->pInputPin->pin.pCritSec);
     }
     if (This->renderer.filter.state == State_Paused) {




More information about the wine-cvs mailing list