Christian Costa wrote:
Index: dlls/quartz/parser.c
RCS file: /home/wine/wine/dlls/quartz/parser.c,v retrieving revision 1.16 diff -u -r1.16 parser.c --- dlls/quartz/parser.c 6 Jun 2005 19:50:36 -0000 1.16 +++ dlls/quartz/parser.c 6 Jun 2005 20:48:12 -0000 @@ -221,6 +221,8 @@
TRACE("()\n");
- if (This->state == State_Stopped) return S_OK;
- EnterCriticalSection(&This->csFilter); { hr = PullPin_StopProcessing(This->pInputPin);
@@ -239,6 +241,8 @@
TRACE("()\n");
- if (This->state == State_Paused) return S_OK;
- EnterCriticalSection(&This->csFilter); { bInit = (This->state == State_Stopped);
These changes aren't thread safe. You should do the comparisons inside of the critical section.