g_source_add_child_source: sync blocked state

Child sources are supposed to be blocked when their parents are, so
when adding a source to a blocked source, block the child too. Fixes a
warning when unblocking the parent.
This commit is contained in:
Dan Winship 2012-07-18 14:19:36 -04:00
parent 2855b827da
commit ee6e66cb44

View File

@ -400,6 +400,8 @@ static gboolean g_idle_dispatch (GSource *source,
GSourceFunc callback,
gpointer user_data);
static void block_source (GSource *source);
static GMainContext *glib_worker_context;
G_LOCK_DEFINE_STATIC (main_loop);
@ -1325,6 +1327,8 @@ g_source_add_child_source (GSource *source,
g_source_ref (child_source));
child_source->priv->parent_source = source;
g_source_set_priority_unlocked (child_source, NULL, source->priority);
if (SOURCE_BLOCKED (source))
block_source (child_source);
if (context)
{