0001
0002
0003
0004
0005
0006 fail() {
0007 rmdir x y z 2>/dev/null
0008 echo $1
0009 set -e
0010 exit_fail
0011 }
0012
0013 cd instances
0014
0015
0016 set +e
0017
0018 mkdir x
0019 rmdir x
0020 result=$?
0021
0022 if [ $result -ne 0 ]; then
0023 echo "instance rmdir not supported"
0024 exit_unsupported
0025 fi
0026
0027 instance_slam() {
0028 while :; do
0029 mkdir x
0030 mkdir y
0031 mkdir z
0032 rmdir x
0033 rmdir y
0034 rmdir z
0035 done 2>/dev/null
0036 }
0037
0038 instance_slam &
0039 p1=$!
0040 echo $p1
0041
0042 instance_slam &
0043 p2=$!
0044 echo $p2
0045
0046 instance_slam &
0047 p3=$!
0048 echo $p3
0049
0050 instance_slam &
0051 p4=$!
0052 echo $p4
0053
0054 instance_slam &
0055 p5=$!
0056 echo $p5
0057
0058 ls -lR >/dev/null
0059 sleep 1
0060
0061 kill -1 $p1
0062 kill -1 $p2
0063 kill -1 $p3
0064 kill -1 $p4
0065 kill -1 $p5
0066
0067 echo "Wait for processes to finish"
0068 wait $p1 $p2 $p3 $p4 $p5
0069 echo "all processes finished, wait for cleanup"
0070
0071 mkdir x y z
0072 ls x y z
0073 rmdir x y z
0074 for d in x y z; do
0075 if [ -d $d ]; then
0076 fail "instance $d still exists"
0077 fi
0078 done
0079
0080 set -e
0081
0082 exit 0