Skip to content
Snippets Groups Projects
Commit cf553911 authored by Peter Eisentraut's avatar Peter Eisentraut
Browse files

Fix problems with certain shells (e.g., FreeBSD, Cygwin) clearing the

exit status in multiline traps.
parent 984791e0
No related branches found
No related tags found
No related merge requests found
#! /bin/sh
# $PostgreSQL: pgsql/src/test/regress/pg_regress.sh,v 1.50 2004/11/17 18:06:04 tgl Exp $
# $PostgreSQL: pgsql/src/test/regress/pg_regress.sh,v 1.51 2004/12/12 15:34:15 petere Exp $
me=`basename $0`
: ${TMPDIR=/tmp}
......@@ -238,18 +238,20 @@ PGDATESTYLE='ISO, MDY'; export PGDATESTYLE
# with the result of the last shell command before the `exit'. Hence
# we have to write `(exit x); exit' below this point.
trap '
savestatus=$?
exit_trap(){
savestatus=$1
if [ -n "$postmaster_pid" ]; then
kill -2 "$postmaster_pid"
wait "$postmaster_pid"
unset postmaster_pid
fi
rm -f "$TMPFILE" && exit $savestatus
' 0
}
trap 'exit_trap $?' 0
trap '
savestatus=$?
sig_trap() {
savestatus=$1
echo; echo "caught signal"
if [ -n "$postmaster_pid" ]; then
echo "signalling fast shutdown to postmaster with pid $postmaster_pid"
......@@ -258,7 +260,9 @@ trap '
unset postmaster_pid
fi
(exit $savestatus); exit
' 1 2 13 15
}
trap 'sig_trap $?' 1 2 13 15
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment