init: don't spew warning about late g_thread_init()s if GLib >= 2.23.2

Late g_thread_init() is fine with newer GLib versions and done automatically
from g_type_init() there, so don't warn if the application hasn't called
g_thread_init() yet when gst_init() is called with new GLib versions.

Fixes #608398.
This commit is contained in:
Tim-Philipp Müller 2010-01-30 13:45:58 +00:00
parent 79d3f1a2c1
commit 6c6f20e0b6

View file

@ -359,6 +359,9 @@ gst_init_get_option_group (void)
{NULL}
};
/* Since GLib 2.23.2 calling g_thread_init() 'late' is allowed and is
* automatically done as part of g_type_init() */
if (!glib_check_version (2, 23, 3)) {
/* The GLib threading system must be initialised before calling any other
* GLib function according to the documentation; if the application hasn't
* called gst_init() yet or initialised the threading system otherwise, we
@ -373,11 +376,14 @@ gst_init_get_option_group (void)
"\tcalled, but the GLib threading system has not been initialised\n"
"\tyet, something that must happen before any other GLib function\n"
"\tis called. The application needs to be fixed so that it calls\n"
"\t if (!g_thread_supported ()) g_thread_init(NULL);\n"
"\t if (!g_thread_get_initialized ()) g_thread_init(NULL);\n"
"\tas very first thing in its main() function. Please file a bug\n"
"\tagainst this application.");
g_thread_init (NULL);
}
} else {
/* GLib >= 2.23.2 */
}
group = g_option_group_new ("gst", _("GStreamer Options"),
_("Show GStreamer Options"), NULL, NULL);
@ -785,6 +791,11 @@ init_post (GOptionContext * context, GOptionGroup * group, gpointer data,
}
#endif /* GST_DISABLE_TRACE */
GST_INFO ("GLib runtime version: %d.%d.%d\n", glib_major_version,
glib_minor_version, glib_micro_version);
GST_INFO ("GLib headers version: %d.%d.%d\n", GLIB_MAJOR_VERSION,
GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
return TRUE;
}