diff options
Diffstat (limited to 'src/freebsd/up-backend.c')
-rw-r--r-- | src/freebsd/up-backend.c | 24 |
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 * |