strmbase: Fix race condition on InputPin_EndOfStream between csRenderLock and filter.csFilter.
This commit is contained in:
parent
47425a5801
commit
a9325037b5
|
@ -105,8 +105,8 @@ static HRESULT WINAPI BaseRenderer_InputPin_EndOfStream(IPin * iface)
|
||||||
|
|
||||||
TRACE("(%p/%p)->()\n", This, pFilter);
|
TRACE("(%p/%p)->()\n", This, pFilter);
|
||||||
|
|
||||||
EnterCriticalSection(&pFilter->filter.csFilter);
|
|
||||||
EnterCriticalSection(&pFilter->csRenderLock);
|
EnterCriticalSection(&pFilter->csRenderLock);
|
||||||
|
EnterCriticalSection(&pFilter->filter.csFilter);
|
||||||
hr = BaseInputPinImpl_EndOfStream(iface);
|
hr = BaseInputPinImpl_EndOfStream(iface);
|
||||||
EnterCriticalSection(This->pin.pCritSec);
|
EnterCriticalSection(This->pin.pCritSec);
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
|
@ -117,8 +117,8 @@ static HRESULT WINAPI BaseRenderer_InputPin_EndOfStream(IPin * iface)
|
||||||
hr = BaseRendererImpl_EndOfStream(pFilter);
|
hr = BaseRendererImpl_EndOfStream(pFilter);
|
||||||
}
|
}
|
||||||
LeaveCriticalSection(This->pin.pCritSec);
|
LeaveCriticalSection(This->pin.pCritSec);
|
||||||
LeaveCriticalSection(&pFilter->csRenderLock);
|
|
||||||
LeaveCriticalSection(&pFilter->filter.csFilter);
|
LeaveCriticalSection(&pFilter->filter.csFilter);
|
||||||
|
LeaveCriticalSection(&pFilter->csRenderLock);
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue