Maarten Lankhorst : winegstreamer: Fix deadlock when changing state.
Alexandre Julliard
julliard at winehq.org
Fri Nov 12 11:22:35 CST 2010
Module: wine
Branch: master
Commit: 096da45036959e57ae3aa5b0de0c06f69c651788
URL: http://source.winehq.org/git/wine.git/?a=commit;h=096da45036959e57ae3aa5b0de0c06f69c651788
Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date: Thu Nov 11 23:22:59 2010 +0100
winegstreamer: Fix deadlock when changing state.
Leaving the lock is legal and required here since gstreamer has its
own locking in place. gst_pad_push could otherwise deadlock.
---
dlls/winegstreamer/gsttffilter.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/dlls/winegstreamer/gsttffilter.c b/dlls/winegstreamer/gsttffilter.c
index a304cc1..912439e 100644
--- a/dlls/winegstreamer/gsttffilter.c
+++ b/dlls/winegstreamer/gsttffilter.c
@@ -267,7 +267,9 @@ static HRESULT WINAPI Gstreamer_transform_ProcessEnd(TransformFilter *iface) {
GstTfImpl *This = (GstTfImpl*)iface;
int ret;
+ LeaveCriticalSection(&This->tf.filter.csFilter);
ret = gst_element_set_state(This->filter, GST_STATE_READY);
+ EnterCriticalSection(&This->tf.filter.csFilter);
TRACE("Returned: %i\n", ret);
return S_OK;
}
More information about the wine-cvs
mailing list