lock(),unlock(): added
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Wed, 31 Mar 2004 00:03:17 +0000 (00:03 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Wed, 31 Mar 2004 00:03:17 +0000 (00:03 +0000)
isNumber(): added doc

git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1401 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/scripts/functions

index c664f2f..4b50d0a 100644 (file)
@@ -107,6 +107,7 @@ function execute
     exit 0
 }
 
+## Usage: isNumber <arg>
 function isNumber
 {
     local tmp
@@ -114,6 +115,37 @@ function isNumber
     return 0
 }
 
+_UV_LOCKS=''
+## Usage: lock <lockfile> [<timeout>]
+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 [<num>]
+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