lib/common.sh: add 'lock_close'; use it as appropriate.

`lock_close FD` is easier to remember than 'exec FD>&-`; and is especially
easier if FD is a variable (though that isn't actually taken advantage of
here).

This uses Bash 4.1+ `exec {var}>&-`, rather than the clunkier
`eval exec "$var>&-"` that was necessary in older versions of Bash.
Thanks to Dave Reisner for pointing this new bit of syntax out to me
the last time I submitted this (back in 2014, 4.1 had just come out).
This commit is contained in:
Luke Shumaker 2017-03-25 12:34:38 -04:00 committed by Jan Alexander Steffens (heftig)
parent f73c1f172f
commit 997bc1dc0d
No known key found for this signature in database
GPG Key ID: A5E9288C4FA415FA
3 changed files with 10 additions and 2 deletions

View File

@ -55,7 +55,7 @@ if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then
subvolume_delete_recursive "${copy}"
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}"

View File

@ -158,6 +158,14 @@ slock() {
fi
}
##
# usage : lock_close( $fd )
##
lock_close() {
local fd=$1
exec {fd}>&-
}
##
# usage: pkgver_equal( $pkgver1, $pkgver2 )
##

View File

@ -108,7 +108,7 @@ create_chroot() {
stat_done
# Drop the read lock again
exec 8>&-
lock_close 8
fi
# Update mtime