trap "echo got signal" USR1 | |
for try in 1 2 3 4 5; do | |
kill -USR1 $$ | |
sleep 0.2 | |
echo "sent $try signal" | |
done & | |
# Ensure "wait" has something to wait for | |
sleep 2 & | |
# Ensure we do not execute "trap" below before "kill -USR1" above | |
# (was getting failure on loaded machine without this) | |
sleep 0.1 | |
sleeping=true | |
while $sleeping; do | |
trap | |
if wait %%; then | |
echo "sleep completed" | |
sleeping=false | |
elif [ $? == 127 ]; then | |
echo "BUG: no processes to wait for?!" | |
sleeping=false | |
else | |
echo "wait interrupted" | |
fi | |
done |