summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Bradford <rob@linux.intel.com>2011-06-15 17:39:36 +0100
committerRoss Burton <ross@linux.intel.com>2011-06-28 15:25:44 +0100
commitd67569a566412f4b87aab75bd43597125fae4018 (patch)
treefc0c9709f5af8f5dc4822076b4b5c04fb9ce543b
parent4abe48b6535415116cb0fa65a271bb5ac9179bd6 (diff)
downloadgconf-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.c15
-rw-r--r--gconf/gconfd.h1
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