From e9836b6b2afa70f22d305509593b375543b20ba6 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 25 Nov 2012 20:05:09 -0500 Subject: Use common functions to handle file locking * lib/common.sh: implement - lock_open_write() - lock_open_read() - lock_close() * archbuild.in, makechrootpkg.in, mkarchroot.in: use said functions This has two benefits: 1. All programs using these methods gain the ability to inherit locks, something that only mkarchroot could do before. This allows the commands to be more compos-able. 2. It is more readable. File locking isn't obvious. --- archbuild.in | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'archbuild.in') diff --git a/archbuild.in b/archbuild.in index 7220391..9476415 100644 --- a/archbuild.in +++ b/archbuild.in @@ -43,17 +43,12 @@ if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then [[ -d $copy ]] || continue msg2 "Deleting chroot copy '$(basename "${copy}")'..." - exec 9>"$copy.lock" - if ! flock -n 9; then - stat_busy "Locking chroot copy '$copy'" - flock 9 - stat_done - fi + lock_open_write 9 "$copy.lock" "Locking chroot copy '$copy'" { type -P btrfs && btrfs subvolume delete "${copy}"; } &>/dev/null rm -rf --one-file-system "${copy}" done - exec 9>&- + lock_close 9 rm -rf --one-file-system "${chroots}/${repo}-${arch}" mkdir -p "${chroots}/${repo}-${arch}" -- cgit v1.2.3-54-g00ecf