[Bug 695702] New: gst_poll_wait never return even if gst_poll_set_flushing true

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Mar 12 06:51:06 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=695702
  GStreamer | gstreamer (core) | 1.0.5

           Summary: gst_poll_wait never return even if
                    gst_poll_set_flushing true
    Classification: Platform
           Product: GStreamer
           Version: 1.0.5
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: lfarkas at lfarkas.org
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


in case we use ppoll in linux implementation of gst_poll_wait and all fd in the
set->active_fds->data are inacticve (ie there are no readable or writable data)
and we remove all elements from the active_fds then gst_poll_wait never return
which cause a deadlock in the user apps. this can happened (eg in case of
tcpserversink when the source element in the pipeline before the sink do not
always send data) that the gst_poll_wait never return even after all client
disconnected and it's try to remove all fd from the clients set. even if we try
to restart with gst_poll_restart but we're not bale to interrupt gst_poll_wait
since it's wait in the ppoll call.

the solution would be if can return from the ppoll without write or read, but
as ppoll called with NULL as the last argument, we currently can't send any
kind of signal to the ppoll since can't get the thread id of the ppoll thread.

is there any solution to this deadlock?

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