[gstreamer-bugs] [Bug 383382] Removing pads from collectpads not threadsafe

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Sat Dec 16 07:21:53 PST 2006


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=383382

  GStreamer | gstreamer (core) | Ver: HEAD CVS


Wim Taymans changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #77895|none                        |committed
               Flag|                            |
         AssignedTo|wim at fluendo.com             |gstreamer-
                   |                            |bugs at lists.sourceforge.net
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|HEAD                        |0.10.12




------- Comment #2 from Wim Taymans  2006-12-16 15:20 UTC -------
Commited. There is still a race in the code when a pad is removed right after
it got collected, no buffer was consumed and after the check for removed but
before the _WAIT call (I marked it in the source with a FIXME). The only way to
fix this is to seriously rethink the locking, it's getting really messy..  

       Patch by: Sjoerd Simons <sjoerd at luon dot net>

        * libs/gst/base/gstcollectpads.c: (ref_data), (unref_data),
        (gst_collect_pads_add_pad), (gst_collect_pads_remove_pad),
        (gst_collect_pads_stop), (gst_collect_pads_event),
        (gst_collect_pads_chain):
        * libs/gst/base/gstcollectpads.h:
        Add refcounting to the collectpads data so we can track when it's safe
        to free the data. Fixes #383382.


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email




More information about the Gstreamer-bugs mailing list