summaryrefslogtreecommitdiffstats
path: root/devel/gconf2/files/patch-gconf_gconfd.c
diff options
context:
space:
mode:
Diffstat (limited to 'devel/gconf2/files/patch-gconf_gconfd.c')
-rw-r--r--devel/gconf2/files/patch-gconf_gconfd.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/devel/gconf2/files/patch-gconf_gconfd.c b/devel/gconf2/files/patch-gconf_gconfd.c
new file mode 100644
index 000000000..ef551cb28
--- /dev/null
+++ b/devel/gconf2/files/patch-gconf_gconfd.c
@@ -0,0 +1,64 @@
+--- gconf/gconfd.c.orig Fri May 5 12:40:23 2006
++++ gconf/gconfd.c Fri May 5 12:41:43 2006
+@@ -124,12 +124,6 @@
+
+ static gboolean in_shutdown = FALSE;
+
+-/*
+- * Flag indicating we received a SIGHUP and we should reaload
+- * all sources during the next periodic_cleanup()
+- */
+-static gboolean need_db_reload = FALSE;
+-
+ /*
+ * CORBA goo
+ */
+@@ -410,6 +404,18 @@
+ }
+
+ static void
++reload_db (void)
++{
++ gconf_log (GCL_INFO, _("SIGHUP received, reloading all databases"));
++
++ logfile_save ();
++ shutdown_databases ();
++ init_databases ();
++ gconf_server_load_sources ();
++ logfile_read ();
++}
++
++static void
+ signal_handler (int signo)
+ {
+ static gint in_fatal = 0;
+@@ -482,8 +488,8 @@
+ case SIGHUP:
+ --in_fatal;
+
+- /* reload sources during next periodic_cleanup() */
+- need_db_reload = TRUE;
++ /* reload sources immediately */
++ reload_db ();
+ break;
+ #endif
+
+@@ -864,18 +870,6 @@
+ static gboolean
+ periodic_cleanup_timeout(gpointer data)
+ {
+- if (need_db_reload)
+- {
+- gconf_log (GCL_INFO, _("SIGHUP received, reloading all databases"));
+-
+- need_db_reload = FALSE;
+- logfile_save ();
+- shutdown_databases ();
+- init_databases ();
+- gconf_server_load_sources ();
+- logfile_read ();
+- }
+-
+ gconf_log (GCL_DEBUG, "Performing periodic cleanup, expiring cache cruft");
+
+ drop_old_clients ();