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:
parent
3861b79efd
commit
5c20ea920e
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue