Commit b3582028 authored by Dan Winship's avatar Dan Winship

gmain: move finalization of GSource outside of context lock

This avoids ugly deadlock situations such as in
https://bugzilla.gnome.org/show_bug.cgi?id=586432

https://bugzilla.gnome.org/show_bug.cgi?id=626702

https://bugzilla.gnome.org/show_bug.cgi?id=634239
parent 3570c4a0
......@@ -1520,7 +1520,13 @@ g_source_unref_internal (GSource *source,
g_source_list_remove (source, context);
if (source->source_funcs->finalize)
source->source_funcs->finalize (source);
{
if (context)
UNLOCK_CONTEXT (context);
source->source_funcs->finalize (source);
if (context)
LOCK_CONTEXT (context);
}
g_free (source->name);
source->name = NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment