g_thread_init users: don't call it if glib >= 2.31

since commit f9b29ca03 included in release 2.31 (docs below say 2.32 but
that is not correct) and onwards g_thread_init is deprecated and calling
it is not required:

 http://developer.gnome.org/glib/unstable/glib-Deprecated-Thread-APIs.html#g-thread-init

 g_thread_init has been deprecated since version 2.32 and should not be
 used in newly-written code. This function is no longer necessary. The
 GLib threading system is automatically initialized at the start of your
 program.

Fixes bulid failure when warnings are treated as errors on fedora 17.

I only tested the change to vl.c, and copy pasted to the two other
locations (couldn't decide if a wrapper for calling g_thread_init is
uglier).

Signed-off-by: Alon Levy <alevy@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Alon Levy 2011-12-20 13:41:04 +02:00 committed by Anthony Liguori
parent 4a0f031d5b
commit 42ed372753
3 changed files with 15 additions and 0 deletions

View File

@ -36,7 +36,12 @@ static GStaticPrivate coroutine_key = G_STATIC_PRIVATE_INIT;
static void __attribute__((constructor)) coroutine_init(void) static void __attribute__((constructor)) coroutine_init(void)
{ {
if (!g_thread_supported()) { if (!g_thread_supported()) {
#if !GLIB_CHECK_VERSION(2, 31, 0)
g_thread_init(NULL); g_thread_init(NULL);
#else
fprintf(stderr, "glib threading failed to initialize.\n");
exit(1);
#endif
} }
coroutine_cond = g_cond_new(); coroutine_cond = g_cond_new();

View File

@ -376,7 +376,12 @@ bool trace_backend_init(const char *events, const char *file)
GThread *thread; GThread *thread;
if (!g_thread_supported()) { if (!g_thread_supported()) {
#if !GLIB_CHECK_VERSION(2, 31, 0)
g_thread_init(NULL); g_thread_init(NULL);
#else
fprintf(stderr, "glib threading failed to initialize.\n");
exit(1);
#endif
} }
trace_available_cond = g_cond_new(); trace_available_cond = g_cond_new();

5
vl.c
View File

@ -2176,7 +2176,12 @@ int main(int argc, char **argv, char **envp)
g_mem_set_vtable(&mem_trace); g_mem_set_vtable(&mem_trace);
if (!g_thread_supported()) { if (!g_thread_supported()) {
#if !GLIB_CHECK_VERSION(2, 31, 0)
g_thread_init(NULL); g_thread_init(NULL);
#else
fprintf(stderr, "glib threading failed to initialize.\n");
exit(1);
#endif
} }
runstate_init(); runstate_init();