gtkglsink: Release the widget lock when trying to get the GL context
authorThibault Saunier <tsaunier@gnome.org>
Mon, 6 Jul 2015 17:33:35 +0000 (19:33 +0200)
committerThibault Saunier <tsaunier@gnome.org>
Mon, 6 Jul 2015 17:33:35 +0000 (19:33 +0200)
Otherwise we might be waiting for the lock on the main loop (for
example in the ->render vmethod) and thus we will deadlock.

ext/gtk/gtkgstglwidget.c

index e7e1221..8195034 100644 (file)
@@ -683,7 +683,9 @@ gtk_gst_gl_widget_init_winsys (GtkGstGLWidget * widget)
   }
 
   if (!widget->priv->other_context) {
+    g_mutex_unlock (&widget->priv->lock);
     _invoke_on_main ((ThreadFunc) _get_gl_context, widget);
+    g_mutex_lock (&widget->priv->lock);
   }
 
   if (!GST_GL_IS_CONTEXT (widget->priv->other_context)) {