[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