Mercurial > hg > CbC > CbC_gcc
view gcc/lock-and-run.sh @ 126:5d30d517ebed
fix example
author | mir3636 |
---|---|
date | Sun, 08 Apr 2018 20:55:21 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line source
#! /bin/sh # Shell-based mutex using mkdir. lockdir="$1" prog="$2"; shift 2 || exit 1 # Remember when we started trying to acquire the lock. count=0 touch lock-stamp.$$ trap 'rm -r "$lockdir" lock-stamp.$$' 0 until mkdir "$lockdir" 2>/dev/null; do # Say something periodically so the user knows what's up. if [ `expr $count % 30` = 0 ]; then # Reset if the lock has been renewed. if [ -n "`find \"$lockdir\" -newer lock-stamp.$$`" ]; then touch lock-stamp.$$ count=1 # Steal the lock after 5 minutes. elif [ $count = 300 ]; then echo removing stale $lockdir >&2 rm -r "$lockdir" else echo waiting to acquire $lockdir >&2 fi fi sleep 1 count=`expr $count + 1` done echo $prog "$@" $prog "$@" # The trap runs on exit.