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);
|
glnx_release_lock_file (&self->lock);
|
||||||
|
|
||||||
if (self->sysroot_fd != -1)
|
(void) ostree_sysroot_unload (self);
|
||||||
(void) close (self->sysroot_fd);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (ostree_sysroot_parent_class)->finalize (object);
|
G_OBJECT_CLASS (ostree_sysroot_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
@ -223,6 +222,24 @@ ostree_sysroot_get_fd (OstreeSysroot *self)
|
||||||
return self->sysroot_fd;
|
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:
|
* ostree_sysroot_ensure_initialized:
|
||||||
* @self: Sysroot
|
* @self: Sysroot
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,8 @@ gboolean ostree_sysroot_load (OstreeSysroot *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
||||||
|
void ostree_sysroot_unload (OstreeSysroot *self);
|
||||||
|
|
||||||
gboolean ostree_sysroot_ensure_initialized (OstreeSysroot *self,
|
gboolean ostree_sysroot_ensure_initialized (OstreeSysroot *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue