summaryrefslogtreecommitdiff
path: root/src/libostree/ostree-sysroot.h
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2015-05-04 18:35:52 -0400
committerColin Walters <walters@verbum.org>2015-05-05 08:52:44 -0400
commit9ef98fd05a335834b3ecb005d820be19784764d8 (patch)
tree2ea2810444e05a64d29dd8b919d50a93a63c3334 /src/libostree/ostree-sysroot.h
parent33b06675976e5a353cff29bbf5622f7fd7565c27 (diff)
downloadostree-9ef98fd05a335834b3ecb005d820be19784764d8.tar.gz
sysroot: Add an API to lock
If a system administrator happens to type `ostree admin upgrade` multiple times, currently that will lead to a potentially corrupted system. I originally attempted to do locking *internally* in `libostree`, but that didn't work out because currently a number of the commands perform multi-step operations that all need to be serialized. All of the current code in `ostree admin deploy` is an example. Therefore, allow callers to perform locking, as most of the higher level logic is presently implemented there. At some point, we can revisit having internal locking, but it will be difficult. A more likely approach would be similar to Java's approach with concurrency on iterators - a "fail fast" method.
Diffstat (limited to 'src/libostree/ostree-sysroot.h')
-rw-r--r--src/libostree/ostree-sysroot.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libostree/ostree-sysroot.h b/src/libostree/ostree-sysroot.h
index fe6441fb..e7f6e482 100644
--- a/src/libostree/ostree-sysroot.h
+++ b/src/libostree/ostree-sysroot.h
@@ -62,6 +62,9 @@ char *ostree_sysroot_get_deployment_dirpath (OstreeSysroot *self,
GFile * ostree_sysroot_get_deployment_origin_path (GFile *deployment_path);
+gboolean ostree_sysroot_lock (OstreeSysroot *self, GError **error);
+void ostree_sysroot_unlock (OstreeSysroot *self);
+
gboolean ostree_sysroot_cleanup (OstreeSysroot *self,
GCancellable *cancellable,
GError **error);