glcontext: fix race joining thread on finalize

https://bugzilla.gnome.org/show_bug.cgi?id=769939
This commit is contained in:
Vincent Penquerc'h 2016-08-15 16:14:25 +01:00 committed by Tim-Philipp Müller
parent 6b635559cd
commit b9224e62b5

View file

@ -642,7 +642,14 @@ gst_gl_context_finalize (GObject * object)
gst_gl_window_quit (context->window);
GST_INFO_OBJECT (context, "joining gl thread");
g_thread_join (context->priv->gl_thread);
g_mutex_lock (&context->priv->render_lock);
if (context->priv->alive) {
GThread *t = context->priv->gl_thread;
g_mutex_unlock (&context->priv->render_lock);
g_thread_join (t);
} else {
g_mutex_unlock (&context->priv->render_lock);
}
GST_INFO_OBJECT (context, "gl thread joined");
context->priv->gl_thread = NULL;
}