diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2004-12-12 15:34:15 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2004-12-12 15:34:15 +0000 |
commit | cf5539112c28b4955f526a52e36ef257ec7a4f03 (patch) | |
tree | 6b8ce1077d3ac56ee4897f1419cc318f7236be69 /src | |
parent | 984791e0e1a52d0929b402885b250361a1ad9758 (diff) | |
download | postgresql-cf5539112c28b4955f526a52e36ef257ec7a4f03.tar.gz postgresql-cf5539112c28b4955f526a52e36ef257ec7a4f03.zip |
Fix problems with certain shells (e.g., FreeBSD, Cygwin) clearing the
exit status in multiline traps.
Diffstat (limited to 'src')
-rw-r--r-- | src/test/regress/pg_regress.sh | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/test/regress/pg_regress.sh b/src/test/regress/pg_regress.sh index cf45f73ae4f..15d475a033d 100644 --- a/src/test/regress/pg_regress.sh +++ b/src/test/regress/pg_regress.sh @@ -1,5 +1,5 @@ #! /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 |