summaryrefslogtreecommitdiff
path: root/src/dummy
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2014-11-20 15:55:37 +0100
committerRichard Hughes <richard@hughsie.com>2014-11-26 11:56:16 +0000
commit90994b0d81ca8e44e6a150c53d2c713fad39c29c (patch)
tree343aa8ec2c9dee4534d44f0868b5606945f8eb27 /src/dummy
parenta91d03a3a9310b5d00e65a249aab2241906733bc (diff)
downloadupower-90994b0d81ca8e44e6a150c53d2c713fad39c29c.tar.gz
daemon: release resources at shutdown
This makes it easier to find real memory leaks with valgrind. After calling the up_backend_unplug functions, you cannot restart it with up_backend_coldplug since the lists are cleared. Tested with Linux only (not on *BSD; dummy compiles). https://bugs.freedesktop.org/show_bug.cgi?id=82659
Diffstat (limited to 'src/dummy')
-rw-r--r--src/dummy/up-backend.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/dummy/up-backend.c b/src/dummy/up-backend.c
index 342111b..ad81b0b 100644
--- a/src/dummy/up-backend.c
+++ b/src/dummy/up-backend.c
@@ -129,6 +129,26 @@ up_backend_coldplug (UpBackend *backend, UpDaemon *daemon)
}
/**
+ * up_backend_unplug:
+ * @backend: The %UpBackend class instance
+ *
+ * Forget about all learned devices, effectively undoing up_backend_coldplug.
+ * Resources are released without emitting signals.
+ */
+void
+up_backend_unplug (UpBackend *backend)
+{
+ if (backend->priv->device_list != NULL) {
+ g_object_unref (backend->priv->device_list);
+ backend->priv->device_list = NULL;
+ }
+ if (backend->priv->daemon != NULL) {
+ g_object_unref (backend->priv->daemon);
+ backend->priv->daemon = NULL;
+ }
+}
+
+/**
* up_backend_get_critical_action:
* @backend: The %UpBackend class instance
*