diff --git a/glib/gmain.c b/glib/gmain.c index 41f1370d7..ee23a6519 100644 --- a/glib/gmain.c +++ b/glib/gmain.c @@ -585,7 +585,6 @@ g_main_context_unref (GMainContext *context) source = s_iter->data; g_source_destroy_internal (source, context, TRUE); } - UNLOCK_CONTEXT (context); for (sl_iter = context->source_lists; sl_iter; sl_iter = sl_iter->next) { @@ -596,6 +595,7 @@ g_main_context_unref (GMainContext *context) g_hash_table_destroy (context->sources); + UNLOCK_CONTEXT (context); g_mutex_clear (&context->mutex); g_ptr_array_free (context->pending_dispatches, TRUE);