exit.
If we kill smbd right away, we can interrupt the gcov data file
writeout. Instead, we now wait up to 20 seconds for the process to
exit, before sending it a kill -9.
Andrew Bartlett
) 9>$SMBD_TEST_FIFO
totalfailed=$?
-kill `cat $PIDDIR/smbd.pid`
+smbd_PID=`cat $PIDDIR/smbd.pid`
+waitforpid $smbd_PID 20 || {
+ echo "smbd process $1 took more than 20 seconds to exit, killing"
+ kill -9 $smbd_PID
+}
if [ "$TEST_LDAP"x = "yesx" ]; then
if test -z "$FEDORA_DS_PREFIX"; then
exit $failed
}
+# wait for a pid with given timeout
+# returns 1 if it timed out, 0 if the process exited itself
+waitforpid() {
+ pid=$1
+ timeout=$2 # in seconds
+ _wcount=0
+ while kill -0 $pid 2> /dev/null; do
+ sleep 1;
+ _wcount=`expr $_wcount + 1`
+ if [ $_wcount -eq $timeout ]; then
+ return "1";
+ fi
+ done
+ return "0";
+}
+
if [ -z "$VALGRIND" ]; then
MALLOC_CHECK_=2
export MALLOC_CHECK_