summaryrefslogtreecommitdiff
path: root/gconf
diff options
context:
space:
mode:
authorVincent Untz <vuntz@gnome.org>2011-10-17 20:02:08 +0200
committerRoss Burton <ross@linux.intel.com>2011-10-23 21:08:35 +0100
commit54318ebf218743ea1a3353f940eb8f44767fd2bb (patch)
tree8e45df8ca318a7bd79081b4a6afea0bd6cf4c6e2 /gconf
parentd77bfc60f0e27d1db24a18661f1a248307307ce1 (diff)
downloadgconf-54318ebf218743ea1a3353f940eb8f44767fd2bb.tar.gz
gconf-dbus: Do not drop old databases that have clients listening to it
This would be bad as clients would get lost when the object path of this dropped database disappears. https://bugzilla.gnome.org/show_bug.cgi?id=659835
Diffstat (limited to 'gconf')
-rw-r--r--gconf/gconfd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gconf/gconfd.c b/gconf/gconfd.c
index 33deb48d..bc62af45 100644
--- a/gconf/gconfd.c
+++ b/gconf/gconfd.c
@@ -1280,6 +1280,10 @@ drop_old_databases(void)
if (db->listeners && /* not already hibernating */
gconf_listeners_count(db->listeners) == 0 && /* Can hibernate */
+#ifdef HAVE_DBUS
+ db->listening_clients &&
+ g_hash_table_size (db->listening_clients) == 0 &&
+#endif
(now - db->last_access) > (60*20)) /* 20 minutes without access */
{
dead = g_list_prepend (dead, db);