multiqueue: ensure thread safety when adding a pad

This seems to be a regression, and was causing crashes.

https://bugzilla.gnome.org/show_bug.cgi?id=649878
This commit is contained in:
Mark Nauwelaerts 2011-05-10 11:11:15 +02:00 committed by Tim-Philipp Müller
parent b6fe77c450
commit 24888ecc70

View file

@ -1755,8 +1755,6 @@ gst_single_queue_new (GstMultiQueue * mqueue, gint id)
sq->extra_size.bytes = mqueue->extra_size.bytes;
sq->extra_size.time = mqueue->extra_size.time;
GST_MULTI_QUEUE_MUTEX_UNLOCK (mqueue);
GST_DEBUG_OBJECT (mqueue, "Creating GstSingleQueue id:%d", sq->id);
sq->mqueue = mqueue;
@ -1818,6 +1816,8 @@ gst_single_queue_new (GstMultiQueue * mqueue, gint id)
gst_pad_set_element_private (sq->sinkpad, (gpointer) sq);
gst_pad_set_element_private (sq->srcpad, (gpointer) sq);
GST_MULTI_QUEUE_MUTEX_UNLOCK (mqueue);
/* only activate the pads when we are not in the NULL state
* and add the pad under the state_lock to prevend state changes
* between activating and adding */