Maarten Lankhorst : quartz: End the flush downstream first before restarting playback in pullpin.
Alexandre Julliard
julliard at winehq.org
Fri Jul 11 08:44:05 CDT 2008
Module: wine
Branch: master
Commit: 484fdcf7e446aaab859eba1b9ae79d689241592a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=484fdcf7e446aaab859eba1b9ae79d689241592a
Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date: Thu Jul 10 14:32:58 2008 -0700
quartz: End the flush downstream first before restarting playback in pullpin.
---
dlls/quartz/pin.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/dlls/quartz/pin.c b/dlls/quartz/pin.c
index bb562ad..e45db96 100644
--- a/dlls/quartz/pin.c
+++ b/dlls/quartz/pin.c
@@ -1783,6 +1783,11 @@ HRESULT WINAPI PullPin_EndFlush(IPin * iface)
TRACE("(%p)->()\n", iface);
+ /* Send further first: Else a race condition might terminate processing early */
+ EnterCriticalSection(This->pin.pCritSec);
+ SendFurther( iface, deliver_endflush, NULL, NULL );
+ LeaveCriticalSection(This->pin.pCritSec);
+
EnterCriticalSection(&This->thread_lock);
{
FILTER_STATE state;
@@ -1795,10 +1800,6 @@ HRESULT WINAPI PullPin_EndFlush(IPin * iface)
}
LeaveCriticalSection(&This->thread_lock);
- EnterCriticalSection(This->pin.pCritSec);
- SendFurther( iface, deliver_endflush, NULL, NULL );
- LeaveCriticalSection(This->pin.pCritSec);
-
return S_OK;
}
More information about the wine-cvs
mailing list