summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/dconf-service.c7
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;
}