[dconf/dconf-0-18] service: Don't hang during shutdown



commit 504094e271ff412c39896574a345d90d8129c458
Author: Marek Kasik <mkasik redhat com>
Date:   Fri Apr 4 15:45:01 2014 +0200

    service: Don't hang during shutdown
    
    Remember whether a signal was signalled to dconf-service
    so we don't call g_application_release() more than once.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=727549

 service/dconf-service.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/service/dconf-service.c b/service/dconf-service.c
index 9c9c88a..1ce8235 100644
--- a/service/dconf-service.c
+++ b/service/dconf-service.c
@@ -39,6 +39,8 @@ typedef struct
   DConfBlame  *blame;
   GHashTable  *writers;
   GArray      *subtree_ids;
+
+  gboolean     released;
 } DConfService;
 
 G_DEFINE_TYPE (DConfService, dconf_service, G_TYPE_APPLICATION)
@@ -48,7 +50,10 @@ dconf_service_signalled (gpointer user_data)
 {
   DConfService *service = user_data;
 
-  g_application_release (G_APPLICATION (service));
+  if (!service->released)
+    g_application_release (G_APPLICATION (service));
+
+  service->released = TRUE;
 
   return G_SOURCE_REMOVE;
 }


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