Move elog(DEBUG4) call outside the locked area, per suggestion from Tom Lane.
authorAlvaro Herrera
Tue, 18 Mar 2008 12:36:43 +0000 (12:36 +0000)
committerAlvaro Herrera
Tue, 18 Mar 2008 12:36:43 +0000 (12:36 +0000)
src/backend/storage/ipc/sinvaladt.c

index 485506a162d0cccce2b680a485cfc384d803f85a..99c5222e231c9f7f742b5c8c984f2b78e827eb1f 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.68 2008/03/17 11:50:27 alvherre Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.69 2008/03/18 12:36:43 alvherre Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -330,12 +330,8 @@ SIInsertDataEntry(SharedInvalidationMessage *data)
     * queries, but if a backend is sitting idle then it won't be starting
     * transactions and so won't be reading SI entries.
     */
-   if (numMsgs == (MAXNUMMESSAGES * 70 / 100) &&
-       IsUnderPostmaster)
-   {
-       elog(DEBUG4, "SI table is 70%% full, signaling postmaster");
+   if (numMsgs == (MAXNUMMESSAGES * 70 / 100) && IsUnderPostmaster)
        signal_postmaster = true;
-   }
 
    /*
     * Insert new message into proper slot of circular buffer
@@ -346,7 +342,10 @@ SIInsertDataEntry(SharedInvalidationMessage *data)
    LWLockRelease(SInvalLock);
 
    if (signal_postmaster)
+   {
+       elog(DEBUG4, "SI table is 70%% full, signaling postmaster");
        SendPostmasterSignal(PMSIGNAL_WAKEN_CHILDREN);
+   }
 
    return true;
 }