[Bug 643087] pulsesink: deadlock in gst_pulseringbuffer_open_device
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Thu Feb 24 04:25:35 PST 2011
https://bugzilla.gnome.org/show_bug.cgi?id=643087
GStreamer | gst-plugins-good | git
--- Comment #13 from Sebastian Dröge <slomo at circular-chaos.org> 2011-02-24 12:25:33 UTC ---
(In reply to comment #12)
> ringbuffer = GST_PULSERING_BUFFER_CAST (object);
>
> + /* why is this not protected by the mainloop lock? */
> gst_pulsering_destroy_context (ringbuffer);
> G_OBJECT_CLASS (ring_parent_class)->finalize (object);
Because the mainloop should not run anymore at this point, everything should be
cleaned up already when going back to NULL state.
> @@ -451,6 +452,8 @@ gst_pulseringbuffer_open_device (GstRingBuffer * buf)
> else
> pbuf->context_name = g_strdup (psink->client_name);
>
> + /* is it really necessary to take this lock here rather than just
> + after the g_mutex_unlock (pa_shared_resource_mutex) below? */
> pa_threaded_mainloop_lock (mainloop);
>
> g_mutex_lock (pa_shared_resource_mutex);
I think it is because it might create a new pulse context with that mainloop if
none exists already.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list