glib 2.34 g_main_context_unref hangs
- From: Ken Bass <kbass kenbass com>
- To: gtk-devel-list gnome org
- Subject: glib 2.34 g_main_context_unref hangs
- Date: Thu, 17 Jan 2013 12:17:07 -0500
I'm trying to figure out if this is a glib bug or not. I just upgraded
to 2.34 from 2.32 and my applications now hangs on exit. (This is
existing code that has worked fine since 2.22)
I have a sig handler to intercept Ctrl-C which calls main_loop_quit()
which appears to all work.
I create my main_loop as follows:
static GMainContext *default_main_context;
if (!default_main_context)
{
// For main thread
ch->main_context = g_main_context_default ();
default_main_context = ch->main_context;
} else
{
// If running a thread, give it its own mainloop context.
ch->main_context = g_main_context_new();
}
ch->main_loop = g_main_loop_new(ch->main_context, FALSE);
In my cleanup routine, called after main_loop exists, I have:
main_loop = ch->main_loop;
context = ch->main_context;
if (main_loop)
{
g_main_loop_unref(main_loop);
}
if (context)
{
g_main_context_unref(context);
}
Under 2.34.2, g_main_context_unref is hanging on the following line:
g_source_destroy_internal (source, context, FALSE);
And in that function the hang is due to LOCK_CONTEXT(context)
Is this a 2.34 bug? I believe I have cleaned up everything and the
g_main_context_unref(context) is pretty much the last glib thing done.
Not sure
why it is hanging on anything.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]