#!/bin/bash # SPDX-License-Identifier: GPL-2.0-only # Copyright (C) 2015-2019 ARM Limited. # Original author: Dave Martin set -ue NR_CPUS=`nproc` pids= logs= cleanup () { trap - INT TERM CHLD set +e if [ -n "$pids" ]; then kill $pids wait $pids pids= fi if [ -n "$logs" ]; then cat $logs rm $logs logs= fi } interrupt () { cleanup exit 0 } child_died () { cleanup exit 1 } trap interrupt INT TERM EXIT trap child_died CHLD for x in `seq 0 $((NR_CPUS * 4))`; do log=`mktemp` logs=$logs\ $log ./fpsimd-test >$log & pids=$pids\ $! done # Wait for all child processes to be created: sleep 10 while :; do kill -USR1 $pids done & pids=$pids\ $! wait exit 1