diff options
author | Thomas Haller <thaller@redhat.com> | 2015-01-06 13:15:43 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-01-12 12:10:03 +0100 |
commit | 1208c0dd13562392871d1f3fddaf17d09dc017e9 (patch) | |
tree | 20e52db871c0c8b40ddf80ba8e7600721f09663b /src/nm-dbus-manager.c | |
parent | e5a82e56980d17be7b6dc092c2eb8b062eeb6903 (diff) | |
download | NetworkManager-1208c0dd13562392871d1f3fddaf17d09dc017e9.tar.gz |
dbus: destroy singleton instance of NMDBusManager on exit
Don't have the singleton instance of NMDBusManager owned by
the main function. Instead use NM_DEFINE_SINGLETON_DESTRUCTOR()
which also logs what's happening.
Diffstat (limited to 'src/nm-dbus-manager.c')
-rw-r--r-- | src/nm-dbus-manager.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/nm-dbus-manager.c b/src/nm-dbus-manager.c index 9ba0ec963c..7479e2f4a3 100644 --- a/src/nm-dbus-manager.c +++ b/src/nm-dbus-manager.c @@ -78,15 +78,18 @@ static void nm_dbus_manager_cleanup (NMDBusManager *self, gboolean dispose); static void start_reconnection_timeout (NMDBusManager *self); static void object_destroyed (NMDBusManager *self, gpointer object); +NM_DEFINE_SINGLETON_DESTRUCTOR (NMDBusManager); +NM_DEFINE_SINGLETON_WEAK_REF (NMDBusManager); + NMDBusManager * nm_dbus_manager_get (void) { - static NMDBusManager *singleton_instance = NULL; static gsize once = 0; if (g_once_init_enter (&once)) { singleton_instance = (NMDBusManager *) g_object_new (NM_TYPE_DBUS_MANAGER, NULL); g_assert (singleton_instance); + nm_singleton_instance_weak_ref_register (); if (!nm_dbus_manager_init_bus (singleton_instance)) start_reconnection_timeout (singleton_instance); g_once_init_leave (&once, 1); |