[Bug 643087] pulsesink: deadlock in gst_pulseringbuffer_open_device
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Thu Feb 24 03:10:53 PST 2011
https://bugzilla.gnome.org/show_bug.cgi?id=643087
GStreamer | gst-plugins-good | git
--- Comment #12 from Philip Jägenstedt <philipj at opera.com> 2011-02-24 11:10:51 UTC ---
Finally, there are some things I find odd about the code, here in the form of
comments in a diff (after "s/ressource/resource/" and "candidate fix" have been
applied):
diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c
index c45acb9..ddce402 100644
--- a/ext/pulse/pulsesink.c
+++ b/ext/pulse/pulsesink.c
@@ -337,6 +337,7 @@ gst_pulseringbuffer_finalize (GObject * object)
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);
}
@@ -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);
--
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