Erich Hoover : quartz: Make sure pin state cannot change while a flush is in progress.

Alexandre Julliard julliard at winehq.org
Tue May 17 12:52:59 CDT 2011


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

Author: Erich Hoover <ehoover at mines.edu>
Date:   Sat May 14 11:15:06 2011 -0600

quartz: Make sure pin state cannot change while a flush is in progress.

---

 dlls/quartz/pin.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/dlls/quartz/pin.c b/dlls/quartz/pin.c
index 7f75c36..bd5cffd 100644
--- a/dlls/quartz/pin.c
+++ b/dlls/quartz/pin.c
@@ -387,6 +387,9 @@ static void PullPin_Flush(PullPin *This)
 
     if (This->pReader)
     {
+        /* Do not allow state to change while flushing */
+        EnterCriticalSection(This->pin.pCritSec);
+
         /* Flush outstanding samples */
         IAsyncReader_BeginFlush(This->pReader);
 
@@ -405,6 +408,8 @@ static void PullPin_Flush(PullPin *This)
         }
 
         IAsyncReader_EndFlush(This->pReader);
+
+        LeaveCriticalSection(This->pin.pCritSec);
     }
 }
 




More information about the wine-cvs mailing list