[Bug 614765] pulsesink: racy stream status leave implementation

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Jul 5 07:40:37 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=614765
  GStreamer | gst-plugins-good | git

Mark Nauwelaerts <mnauw> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|0.10.31                     |0.10.36

--- Comment #18 from Mark Nauwelaerts <mnauw at users.sourceforge.net> 2011-07-05 14:40:34 UTC ---
Indeed. Thanks.

commit ae87731de5dc9a1f39edd2b4dd12db30ad1ff0fd
Author: René Stadler <rene.stadler at nokia.com>
Date:   Wed Jun 29 20:59:26 2011 +0300

    pulsesink: prevent race condition causing ref leak

    Since commit 8bfd80, gst_pulseringbuffer_stop doesn't wait for the
    deferred call to be run before returning. This causes a race when
    READY->NULL is executed shortly after, which stops the mainloop. This
    leaks the element reference which is passed as userdata for the callback
    (introduced in commit 7cf996, bug #614765).

    The correct fix is to wait in READY->NULL for all outstanding calls to
    be fired (since libpulse doesn't provide a DestroyNotify for the
    userdata). We get rid of the reference passing from 7cf996 altogether,
    since finalization from the callback would anyways lead to a deadlock.

    Re-fixes bug #614765.

commit f8456e2a1aaa9ae3a146ffb2a4510bff581eb88d
Author: René Stadler <rene.stadler at nokia.com>
Date:   Mon Jul 4 08:58:14 2011 +0300

    pulsesink: small cleanup of copy-paste code

commit 3589cee762e8bb6bf4da6bb52a58554b61de66a0
Author: René Stadler <rene.stadler at nokia.com>
Date:   Wed Jun 29 19:50:42 2011 +0300

    pulsesink: remove unused member variable and misleading log message

    Wim changed it in commit 8bfd80 so that pa_defer_ran is not read
    anywhere.

    The log message used to annotate a mainloop_wait call which is gone.

-- 
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