From e0d4eccc1ed28003e0eca350939c0dff16cf6c20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 28 Oct 2014 19:16:52 +0000 Subject: [PATCH] gst: make gst_init() thread-safe Because we can, and there isn't really any reason not to do so. --- gst/gst.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gst/gst.c b/gst/gst.c index 37c6ce9248..562a676d72 100644 --- a/gst/gst.c +++ b/gst/gst.c @@ -318,14 +318,18 @@ gst_init_get_option_group (void) gboolean gst_init_check (int *argc, char **argv[], GError ** err) { + static GMutex init_lock; #ifndef GST_DISABLE_OPTION_PARSING GOptionGroup *group; GOptionContext *ctx; #endif gboolean res; + g_mutex_lock (&init_lock); + if (gst_initialized) { GST_DEBUG ("already initialized gst"); + g_mutex_unlock (&init_lock); return TRUE; } #ifndef GST_DISABLE_OPTION_PARSING @@ -350,6 +354,8 @@ gst_init_check (int *argc, char **argv[], GError ** err) GST_INFO ("failed to initialize GStreamer"); } + g_mutex_unlock (&init_lock); + return res; }