[Bug 760757] New: gstsystemclock: incorrect handling of wait requests

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Jan 17 14:01:09 PST 2016


https://bugzilla.gnome.org/show_bug.cgi?id=760757

            Bug ID: 760757
           Summary: gstsystemclock: incorrect handling of wait requests
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: florin.apostol at oregan.net
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

When scheduling an alarm and inserting it at the beginning of the list
gst_system_clock_id_wait_async will check if the current head entry is busy.If
it is, the worker thread is already handling the head of the list and needs to
be wake up to take a look at the new head. If the current head is not busy, the
worker thread has not looked yet at the first entry, so inserting a new one
before it is safe because the worker thread will start looking at the first
entry from the list.

But gst_system_clock_async_thread will choose the first entry and drop the
clock lock before calling gst_system_clock_id_wait_jitter_unlocked to set the
chosen entry to busy. This creates a small window of opportunity in which a new
entry is inserted by gst_system_clock_id_wait_async at the head of the list
without informing the worker thread and the worker thread starting to handle
the chosen entry which now is the second one in the list.

As a result, the new entry inserted at the beginning of the list will be
ignored until the list becomes empty.

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