sysroot: Add an unload() API

This will be used by gnome-continuous at least to drop the reference
to the fd so that unmounting can proceed.  See
https://git.gnome.org/browse/gnome-continuous/commit/?id=95e9910ea288d302509ca667e0d190dd89377dd5
This commit is contained in:
Colin Walters committed 2015-08-13 12:43:14 -04:00
1 parent 3861b79efd
commit 5c20ea920e
2 files changed
+21 -2

No files matched your search

+19 -2
View File
@@ -72,8 +72,7 @@ ostree_sysroot_finalize (GObject *object)
glnx_release_lock_file (&self->lock);
if (self->sysroot_fd != -1)
(void) close (self->sysroot_fd);
(void) ostree_sysroot_unload (self);
G_OBJECT_CLASS (ostree_sysroot_parent_class)->finalize (object);
}
@@ -223,6 +222,24 @@ ostree_sysroot_get_fd (OstreeSysroot *self)
return self->sysroot_fd;
}
/**
* ostree_sysroot_unload:
* @self: Sysroot
*
* Release any resources such as file descriptors referring to the
* root directory of this sysroot. Normally, those resources are
* cleared by finalization, but in garbage collected languages that
* may not be predictable.
*
* This undoes the effect of `ostree_sysroot_load()`.
*/
void
ostree_sysroot_unload (OstreeSysroot *self)
{
if (self->sysroot_fd != -1)
(void) close (self->sysroot_fd);
}
/**
* ostree_sysroot_ensure_initialized:
* @self: Sysroot
+2
View File
@@ -45,6 +45,8 @@ gboolean ostree_sysroot_load (OstreeSysroot *self,
GCancellable *cancellable,
GError **error);
void ostree_sysroot_unload (OstreeSysroot *self);
gboolean ostree_sysroot_ensure_initialized (OstreeSysroot *self,
GCancellable *cancellable,
GError **error);