mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-10 17:35:59 +00:00
plugins/elements/gstmultiqueue.c: Don't deadlock when releasing a pad - gst_pad_set_active may try and take the multi...
Original commit message from CVS: * plugins/elements/gstmultiqueue.c: (gst_multi_queue_release_pad): Don't deadlock when releasing a pad - gst_pad_set_active may try and take the multiqueue lock too.
This commit is contained in:
parent
e28b310a73
commit
60f4a78b3d
2 changed files with 13 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
|||
2007-04-13 Jan Schmidt <thaytan@mad.scientist.com>
|
||||
|
||||
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_release_pad):
|
||||
Don't deadlock when releasing a pad - gst_pad_set_active may try
|
||||
and take the multiqueue lock too.
|
||||
|
||||
2007-04-12 Tim-Philipp Müller <tim at centricular dot net>
|
||||
|
||||
* gst/gsterror.c: (_gst_core_errors_init):
|
||||
|
|
|
@ -399,12 +399,19 @@ gst_multi_queue_release_pad (GstElement * element, GstPad * pad)
|
|||
|
||||
if (!tmp) {
|
||||
GST_WARNING_OBJECT (mqueue, "That pad doesn't belong to this element ???");
|
||||
GST_MULTI_QUEUE_MUTEX_UNLOCK (mqueue);
|
||||
return;
|
||||
}
|
||||
|
||||
/* FIXME: The removal of the singlequeue should probably not happen until it
|
||||
* finishes draining */
|
||||
|
||||
/* remove it from the list */
|
||||
mqueue->queues = g_list_delete_link (mqueue->queues, tmp);
|
||||
|
||||
/* FIXME : recompute next-non-linked */
|
||||
GST_MULTI_QUEUE_MUTEX_UNLOCK (mqueue);
|
||||
|
||||
/* delete SingleQueue */
|
||||
gst_data_queue_set_flushing (sq->queue, TRUE);
|
||||
|
||||
|
@ -413,9 +420,6 @@ gst_multi_queue_release_pad (GstElement * element, GstPad * pad)
|
|||
gst_element_remove_pad (element, sq->srcpad);
|
||||
gst_element_remove_pad (element, sq->sinkpad);
|
||||
gst_single_queue_free (sq);
|
||||
|
||||
/* FIXME : recompute next-non-linked */
|
||||
GST_MULTI_QUEUE_MUTEX_UNLOCK (mqueue);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
|
Loading…
Reference in a new issue