From: Enrico Scholz Date: Wed, 31 Mar 2004 00:03:17 +0000 (+0000) Subject: lock(),unlock(): added X-Git-Tag: VERSION_0_10~174 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c50b242740fa7305667d0c08986ea4fdceeb071e;p=util-vserver.git lock(),unlock(): added isNumber(): added doc git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1401 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/scripts/functions b/util-vserver/scripts/functions index c664f2f..4b50d0a 100644 --- a/util-vserver/scripts/functions +++ b/util-vserver/scripts/functions @@ -107,6 +107,7 @@ function execute exit 0 } +## Usage: isNumber function isNumber { local tmp @@ -114,6 +115,37 @@ function isNumber return 0 } +_UV_LOCKS='' +## Usage: lock [] +function lock +{ + local tmp=$(mktemp /tmp/vserver-lock.XXXXXX) + rm -f $tmp + mkfifo -m600 $tmp + + sleep 10 + $_LOCKFILE "$1" $tmp $2 & + cat <$tmp >/dev/null + + _UV_LOCKS="$! $_UV_LOCKS" +} + +## Usage: unlock [] +function unlock +{ + local num=$1 + local i + + set -- $_UV_LOCKS + while test "$#" -gt 0; do + kill -HUP "$1" >/dev/null || : + shift + test "$num" != 1 || break + test -z "$num" || let --num + done + _UV_LOCKS="$@" +} + function _pkgMountBindDir() { test "$1" != "$2" || return 0