1#! /bin/sh
2
3# send_signal sends signal $1 to the Valgrind process using prefix $2 in $3 seconds
4# If there are some args after $3, the rest of these args is a command and its arg
5# which is run every second. When this command is successful, then the sleep and
6# the signal sending is done
7SIG=$1
8shift
9PREFIX=$1
10shift
11SLEEP=$1
12shift
13GUARDCMD="$@"
14if [ "$GUARDCMD" = "" ]
15then
16  GUARDCMD="true"
17fi
18VPID=`./vgdb -l $PREFIX 2>&1 | awk '{print $2}' | sed -e 's/--pid=//'`
19if [ "$VPID" = "" ]
20then
21  echo "send_signal could not determine the valgrind pid with " $PREFIX
22  exit 1
23fi
24(while ! $GUARDCMD >> garbage.filtered.out 2>&1
25 do
26   sleep 1
27 done
28 sleep $SLEEP
29 echo sending signal
30 kill -s $SIG $VPID) &
31