0001
0002
0003
0004
0005
0006 set -ue
0007
0008 NR_CPUS=`nproc`
0009
0010 pids=
0011 logs=
0012
0013 cleanup () {
0014 trap - INT TERM CHLD
0015 set +e
0016
0017 if [ -n "$pids" ]; then
0018 kill $pids
0019 wait $pids
0020 pids=
0021 fi
0022
0023 if [ -n "$logs" ]; then
0024 cat $logs
0025 rm $logs
0026 logs=
0027 fi
0028 }
0029
0030 interrupt () {
0031 cleanup
0032 exit 0
0033 }
0034
0035 child_died () {
0036 cleanup
0037 exit 1
0038 }
0039
0040 trap interrupt INT TERM EXIT
0041 trap child_died CHLD
0042
0043 for x in `seq 0 $((NR_CPUS * 4))`; do
0044 log=`mktemp`
0045 logs=$logs\ $log
0046 ./fpsimd-test >$log &
0047 pids=$pids\ $!
0048 done
0049
0050
0051 sleep 10
0052
0053 while :; do
0054 kill -USR1 $pids
0055 done &
0056 pids=$pids\ $!
0057
0058 wait
0059
0060 exit 1