Blob Blame History Raw
diff -up GConf-3.2.5/gconf/gconfd.c.workaround-crash GConf-3.2.5/gconf/gconfd.c
--- GConf-3.2.5/gconf/gconfd.c.workaround-crash	2012-03-07 13:08:55.000000000 -0500
+++ GConf-3.2.5/gconf/gconfd.c	2012-09-24 10:04:22.604652720 -0400
@@ -1053,63 +1053,6 @@ static GSList* main_loops = NULL;
 static guint timeout_id = 0;
 static gboolean need_log_cleanup = FALSE;
 
-static gboolean
-periodic_cleanup_timeout(gpointer data)
-{  
-  if (need_db_reload)
-    {
-      gconf_log (GCL_INFO, _("SIGHUP received, reloading all databases"));
-
-      need_db_reload = FALSE;
-#ifdef HAVE_CORBA
-      logfile_save ();
-      shutdown_databases ();
-      init_databases ();
-      gconf_server_load_sources ();
-      logfile_read ();
-#endif
-#ifdef HAVE_DBUS
-      reload_databases ();
-#endif
-    }
-  
-  gconf_log (GCL_DEBUG, "Performing periodic cleanup, expiring cache cruft");
-  
-#ifdef HAVE_CORBA
-  drop_old_clients ();
-#endif
-  drop_old_databases ();
-
-#ifdef HAVE_DBUS
-  if (no_databases_in_use () && gconfd_dbus_client_count () == 0)
-#else
-  if (no_databases_in_use () && client_count () == 0)
-#endif
-    {
-      gconf_log (GCL_INFO, _("GConf server is not in use, shutting down."));
-      gconfd_main_quit ();
-      return FALSE;
-    }
-  
-  /* expire old locale cache entries */
-  gconfd_locale_cache_expire ();
-
-#ifdef HAVE_CORBA
-  if (!need_log_cleanup)
-    {
-      gconf_log (GCL_DEBUG, "No log file saving needed in periodic cleanup handler");
-      return TRUE;
-    }
-  
-  /* Compress the running state file */
-  logfile_save ();
-#endif
-
-  need_log_cleanup = FALSE;
-  
-  return TRUE;
-}
-
 void
 gconfd_need_log_cleanup (void)
 {
@@ -1123,26 +1066,14 @@ gconf_main(void)
 
   loop = g_main_loop_new (NULL, TRUE);
 
-  if (main_loops == NULL)
-    {
-      gulong timeout_len = 60*0.5; /* 60 s/min * .5 min */
-      
-      g_assert(timeout_id == 0);
-      timeout_id = g_timeout_add_seconds (timeout_len,
-                                          periodic_cleanup_timeout,
-                                          NULL);
-
-    }
-  
   main_loops = g_slist_prepend(main_loops, loop);
 
   g_main_loop_run (loop);
 
   main_loops = g_slist_remove(main_loops, loop);
 
-  if (main_loops == NULL)
+  if (main_loops == NULL && timeout_id != 0)
     {
-      g_assert(timeout_id != 0);
       g_source_remove(timeout_id);
       timeout_id = 0;
     }