[Bug 706831] composition: Release objects lock while forwarding an event

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Aug 26 14:09:41 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=706831
  GStreamer | gnonlin | unspecified

--- Comment #1 from Thibault Saunier <thibault.saunier at collabora.com> 2013-08-26 21:09:38 UTC ---
Created an attachment (id=253177)
 View: https://bugzilla.gnome.org/attachment.cgi?id=253177
 Review: https://bugzilla.gnome.org/review?bug=706831&attachment=253177

composition: Release objects lock while forwarding an event

There is no reason to keep it and in some rare cases it creates
deadlocks as followed:
  t1:
     → Composition receives a flushing seek, it takes the OBJECTS_LOCK
        and fowards the flushing seek event upstream
     → adder receives the seek and set its collectpad to flushing
        This implies tacking STREAM_LOCK (collectpad)

  t2:
    → Collectpad has buffers ready, and has the STREAM_LOCK
    (collectpad) and is EOS, so it sends it downstream
    → The composition receives EOS, and needs to check if it is
    the actual EOS or not, thus need to take the OBJECTS_LOCK

This create a deadlock, and in the first stage, we did not need the
OBJECTS_LOCK to forward downstream the flushing seek, so do not take
it.

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