diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c index 04d2074af..678455167 100644 --- a/src/nm-core-utils.c +++ b/src/nm-core-utils.c @@ -126,6 +126,8 @@ static void _nm_singleton_instance_weak_cb (gpointer data, GObject *where_the_object_was) { + nm_assert (g_slist_find (_singletons, where_the_object_was)); + _singletons = g_slist_remove (_singletons, where_the_object_was); } diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c index 4d1915e24..b8457aca3 100644 --- a/src/settings/nm-settings.c +++ b/src/settings/nm-settings.c @@ -1255,6 +1255,10 @@ add_plugin (NMSettings *self, priv->plugins = g_slist_append (priv->plugins, g_object_ref (plugin)); + nm_shutdown_wait_obj_register_full (G_OBJECT (plugin), + g_strdup_printf ("%s-settings-plugin", pname), + TRUE); + _LOGI ("Loaded settings plugin: %s (%s%s%s)", pname, NM_PRINT_FMT_QUOTED (path, "\"", path, "\"", "internal")); diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-plugin.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-plugin.c index 14e4108f6..edd749fc4 100644 --- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-plugin.c +++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-plugin.c @@ -79,12 +79,6 @@ G_DEFINE_TYPE (SettingsPluginIfcfg, settings_plugin_ifcfg, NM_TYPE_SETTINGS_PLUG /*****************************************************************************/ -static SettingsPluginIfcfg *settings_plugin_ifcfg_get (void); - -NM_DEFINE_SINGLETON_GETTER (SettingsPluginIfcfg, settings_plugin_ifcfg_get, SETTINGS_TYPE_PLUGIN_IFCFG); - -/*****************************************************************************/ - #define _NMLOG_DOMAIN LOGD_SETTINGS #define _NMLOG(level, ...) \ G_STMT_START { \ @@ -984,5 +978,5 @@ settings_plugin_ifcfg_class_init (SettingsPluginIfcfgClass *klass) G_MODULE_EXPORT NMSettingsPlugin * nm_settings_plugin_factory (void) { - return NM_SETTINGS_PLUGIN (g_object_ref (settings_plugin_ifcfg_get ())); + return g_object_new (SETTINGS_TYPE_PLUGIN_IFCFG, NULL); } diff --git a/src/settings/plugins/ifupdown/nms-ifupdown-plugin.c b/src/settings/plugins/ifupdown/nms-ifupdown-plugin.c index 8f9be772b..23f401560 100644 --- a/src/settings/plugins/ifupdown/nms-ifupdown-plugin.c +++ b/src/settings/plugins/ifupdown/nms-ifupdown-plugin.c @@ -75,11 +75,6 @@ G_DEFINE_TYPE (SettingsPluginIfupdown, settings_plugin_ifupdown, NM_TYPE_SETTING /*****************************************************************************/ -static SettingsPluginIfupdown *settings_plugin_ifupdown_get (void); -NM_DEFINE_SINGLETON_GETTER (SettingsPluginIfupdown, settings_plugin_ifupdown_get, SETTINGS_TYPE_PLUGIN_IFUPDOWN); - -/*****************************************************************************/ - #define _NMLOG_PREFIX_NAME "ifupdown" #define _NMLOG_DOMAIN LOGD_SETTINGS #define _NMLOG(level, ...) \ @@ -339,5 +334,5 @@ settings_plugin_ifupdown_class_init (SettingsPluginIfupdownClass *klass) G_MODULE_EXPORT NMSettingsPlugin * nm_settings_plugin_factory (void) { - return NM_SETTINGS_PLUGIN (g_object_ref (settings_plugin_ifupdown_get ())); + return g_object_new (SETTINGS_TYPE_PLUGIN_IFUPDOWN, NULL); }