[glib] g_source_add_child_source: sync blocked state



commit ee6e66cb4483d82fcb0657d13faebf844258c70b
Author: Dan Winship <danw gnome org>
Date:   Wed Jul 18 14:19:36 2012 -0400

    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.

 glib/gmain.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/glib/gmain.c b/glib/gmain.c
index d9dc76e..443d423 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -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)
     {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]