summaryrefslogtreecommitdiff
path: root/src/freebsd/up-backend.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/freebsd/up-backend.c')
-rw-r--r--src/freebsd/up-backend.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/freebsd/up-backend.c b/src/freebsd/up-backend.c
index ad54b9c..9fcd2b1 100644
--- a/src/freebsd/up-backend.c
+++ b/src/freebsd/up-backend.c
@@ -294,6 +294,30 @@ 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->poll_timer_id > 0) {
+ g_source_remove (backend->priv->poll_timer_id);
+ backend->priv->poll_timer_id = 0;
+ }
+ 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
*