aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/utils/error/elog.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index e6f191d5df3..42650a1f7e5 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.133 2004/04/11 00:54:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.134 2004/04/16 12:59:05 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -448,6 +448,10 @@ errfinish(int dummy,...)
if (in_fatal_exit)
ereport(PANIC, (errmsg("fatal error during fatal exit, giving up")));
+ /* not safe to longjump */
+ if (!Warn_restart_ready || proc_exit_inprogress)
+ proc_exit(proc_exit_inprogress || !IsUnderPostmaster);
+
/* We will exit the backend by simulating a client EOF */
in_fatal_exit = true;
}