inputselector: Deactivate and remove pad without the inputselector lock

Otherwise we might get deadlocks caused by lock order inversion:
During the chain function the stream lock is first locked and then the
inputselector lock. During pad release we first locked the inputselector
lock and then deactivating the pad would lock the stream lock.

There's no reason why the inputselector lock should be required while
deactivating and removing the pad, it's only needed before.

https://bugzilla.gnome.org/show_bug.cgi?id=704002
This commit is contained in:
Sebastian Dröge 2013-07-12 10:08:26 +02:00
parent f8fdb61b02
commit 717ad20912

View file

@ -1699,10 +1699,10 @@ gst_input_selector_release_pad (GstElement * element, GstPad * pad)
sel->active_sinkpad = NULL;
}
sel->n_pads--;
GST_INPUT_SELECTOR_UNLOCK (sel);
gst_pad_set_active (pad, FALSE);
gst_element_remove_pad (GST_ELEMENT (sel), pad);
GST_INPUT_SELECTOR_UNLOCK (sel);
}
static void