diff options
author | Rob Bradford <rob@linux.intel.com> | 2011-06-15 17:39:36 +0100 |
---|---|---|
committer | Ross Burton <ross@linux.intel.com> | 2011-06-28 15:25:44 +0100 |
commit | d67569a566412f4b87aab75bd43597125fae4018 (patch) | |
tree | fc0c9709f5af8f5dc4822076b4b5c04fb9ce543b | |
parent | 4abe48b6535415116cb0fa65a271bb5ac9179bd6 (diff) | |
download | gconf-d67569a566412f4b87aab75bd43597125fae4018.tar.gz |
gconfd: Add internal API (gconfd_main_quit) to allow clean daemon shutdown
This API call is needed by the DBUS handling code to shutdown the core of the
daemon when the dbus clients are disconnected.
-rw-r--r-- | gconf/gconfd.c | 15 | ||||
-rw-r--r-- | gconf/gconfd.h | 1 |
2 files changed, 8 insertions, 8 deletions
diff --git a/gconf/gconfd.c b/gconf/gconfd.c index b89e7a14..ecdc1672 100644 --- a/gconf/gconfd.c +++ b/gconf/gconfd.c @@ -121,7 +121,6 @@ safe_g_hash_table_insert(GHashTable* ht, gpointer key, gpointer value) */ static void gconf_main (void); -static void gconf_main_quit (void); static gboolean gconf_main_is_running (void); static void logfile_save (void); @@ -335,7 +334,7 @@ gconfd_shutdown(PortableServer_Servant servant, CORBA_Environment *ev) gconf_log(GCL_DEBUG, _("Shutdown request received")); - gconf_main_quit(); + gconfd_main_quit(); } /* @@ -472,7 +471,7 @@ signal_handler (int signo) --in_fatal; if (gconf_main_is_running ()) - gconf_main_quit (); + gconfd_main_quit (); break; @@ -483,7 +482,7 @@ signal_handler (int signo) --in_fatal; if (gconf_main_is_running ()) - gconf_main_quit (); + gconfd_main_quit (); break; #ifdef SIGHUP @@ -550,7 +549,7 @@ bus_message_handler (DBusConnection *connection, DBUS_INTERFACE_LOCAL, "Disconnected")) { - gconf_main_quit (); + gconfd_main_quit (); return DBUS_HANDLER_RESULT_HANDLED; } else if (dbus_message_is_method_call (message, @@ -1006,7 +1005,7 @@ periodic_cleanup_timeout(gpointer data) if (no_databases_in_use () && client_count () == 0) { gconf_log (GCL_INFO, _("GConf server is not in use, shutting down.")); - gconf_main_quit (); + gconfd_main_quit (); return FALSE; } @@ -1067,8 +1066,8 @@ gconf_main(void) g_main_loop_unref (loop); } -static void -gconf_main_quit(void) +void +gconfd_main_quit(void) { g_return_if_fail(main_loops != NULL); diff --git a/gconf/gconfd.h b/gconf/gconfd.h index 10712596..6d857b41 100644 --- a/gconf/gconfd.h +++ b/gconf/gconfd.h @@ -50,6 +50,7 @@ void gconfd_clear_cache_for_sources (GConfSources *sources); void gconfd_need_log_cleanup (void); +void gconfd_main_quit (void); G_END_DECLS |