[Bug 775171] glcontext/glwindow: Race when creating/quitting

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Nov 28 03:28:49 UTC 2016


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

Matthew Waters (ystreet00) <ystreet00 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|git master                  |1.11.1

--- Comment #4 from Matthew Waters (ystreet00) <ystreet00 at gmail.com> ---
commit 024e92afe7bb6ab019876ceeb97041129b95c0d7
Author: Matthew Waters <matthew at centricular.com>
Date:   Mon Nov 28 14:22:05 2016 +1100

    glwindow: move g_main_context_push/pop_thread_default() to run()

    Calling g_main_context_push_thread and then g_main_context_invoke()
    (used by gst_gl_window_send_message_async()) in the same thread will
    cause the invoked function to run immediately instead of being delayed.

    This had implications for the creation of the OpenGL context not waiting
    until the main loop had completely started up and as a result would
    sometimes deadlock in short create/destroy scenarios.

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

commit 25fbc6d877b81fb5cd2731edc01d05bf900420dc
Author: Matthew Waters <matthew at centricular.com>
Date:   Mon Nov 28 14:19:18 2016 +1100

    glcontext: fix race between creation/shutdown

    626bcccff96f624f59c5212b3e21e472240171fd removed some locks that
    allowed the main loop quit to occur before the context was fully
    created.

    2776cef25d2a98668b73272aecfe77e684e6627e attempted to readd them but
    missed the scop of the quit() call.

    Also remove the use of g_thread_join() as that's not safe to use when
    it's possible to lose the last reference from the GL thread.

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

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