]> granicus.if.org Git - postgresql/commitdiff
exit recursion fix from Massimo
authorBruce Momjian <bruce@momjian.us>
Sat, 6 Nov 1999 19:46:57 +0000 (19:46 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 6 Nov 1999 19:46:57 +0000 (19:46 +0000)
src/backend/storage/ipc/ipc.c

index 2c10a8c5a5e73b5684c276953f9601a8a93a8dfe..eca74905b2c8fc748dcdae5817cb765bb75334cc 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.41 1999/11/06 17:01:28 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.42 1999/11/06 19:46:57 momjian Exp $
  *
  * NOTES
  *
@@ -118,18 +118,19 @@ proc_exit(int code)
         * If proc_exit is called too many times something bad is happening, so
         * exit immediately.  This is crafted in two if's for a reason.
         */
-       if (proc_exit_inprogress == 9)
+
+       if (++proc_exit_inprogress == 9)
                elog(ERROR, "infinite recursion in proc_exit");
        if (proc_exit_inprogress >= 9)
                goto exit;
 
        /* ----------------
-        *      if proc_exit_inprocess is true, then it means that we
+        *      if proc_exit_inprocess > 1, then it means that we
         *      are being invoked from within an on_exit() handler
         *      and so we return immediately to avoid recursion.
         * ----------------
         */
-       if (proc_exit_inprogress++)
+       if (proc_exit_inprogress > 1)
                return;
 
        /* do our shared memory exits first */