[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