From 05f235ad8f0a80fc556bba315e8fad0db7af3fcb Mon Sep 17 00:00:00 2001 From: Gordon Hecker Date: Wed, 30 Sep 2009 16:10:15 +0200 Subject: [PATCH] lock chroot Signed-off-by: Gordon Hecker --- local/e2build.lua | 27 +++++++++++++++++++++++++++ local/policy.lua | 2 ++ 2 files changed, 29 insertions(+) diff --git a/local/e2build.lua b/local/e2build.lua index f3dbc50..b8034a0 100644 --- a/local/e2build.lua +++ b/local/e2build.lua @@ -173,6 +173,7 @@ function e2build.build_config(info, r) tab.base = string.format("%s/%s/%s", tmpdir, project, r) tab.c = string.format("%s/chroot", tab.base) tab.chroot_marker = string.format("%s/e2factory-chroot", tab.base) + tab.chroot_lock = string.format("%s/e2factory-chroot-lock", tab.base) tab.T = string.format("%s/%s/%s/chroot/%s", tmpdir, project, r, builddir) tab.Tc = string.format("/%s", builddir) tab.r = string.format("%s", r) @@ -207,6 +208,32 @@ function e2build.build_config(info, r) return tab end +function e2build.chroot_lock(info, r, return_flags) + local res = info.results[r] + local rc, re + local e = new_error("error locking chroot") + rc, re = e2lib.mkdir(res.build_config.c, "-p") + if not rc then + return false, e:cat(re) + end + rc, re = e2lib.lock:lock(res.build_config.chroot_lock) + if not rc then + return false, e:cat(re) + end + return true, nil +end + +function e2build.chroot_unlock(info, r, return_flags) + local res = info.results[r] + local rc, re + local e = new_error("error unlocking chroot") + rc, re = e2lib.lock:unlock(res.build_config.chroot_lock) + if not rc then + return false, e:cat(re) + end + return true, nil +end + function e2build.setup_chroot(info, r, return_flags) local res = info.results[r] local rc, re diff --git a/local/policy.lua b/local/policy.lua index 3cd351c..9e900a0 100644 --- a/local/policy.lua +++ b/local/policy.lua @@ -222,6 +222,7 @@ local default_build_process = { "build_config", "result_available", "remove_logfile", + "chroot_lock", "chroot_cleanup_if_exists", "setup_chroot", "sources", @@ -233,6 +234,7 @@ local default_build_process = { "store_result", "linklast", "chroot_cleanup", + "chroot_unlock", } policy = {} -- 2.39.5