aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/ipc/sinval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/storage/ipc/sinval.c')
-rw-r--r--src/backend/storage/ipc/sinval.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/backend/storage/ipc/sinval.c b/src/backend/storage/ipc/sinval.c
index d60e6198f51..9177a81604b 100644
--- a/src/backend/storage/ipc/sinval.c
+++ b/src/backend/storage/ipc/sinval.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinval.c,v 1.32 2001/06/01 20:07:16 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinval.c,v 1.33 2001/06/16 22:58:13 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -43,13 +43,15 @@ CreateSharedInvalidationState(int maxBackends)
void
InitBackendSharedInvalidationState(void)
{
+ int flag;
+
SpinAcquire(SInvalLock);
- if (!SIBackendInit(shmInvalBuffer))
- {
- SpinRelease(SInvalLock);
- elog(FATAL, "Backend cache invalidation initialization failed");
- }
+ flag = SIBackendInit(shmInvalBuffer);
SpinRelease(SInvalLock);
+ if (flag < 0) /* unexpected problem */
+ elog(FATAL, "Backend cache invalidation initialization failed");
+ if (flag == 0) /* expected problem: MaxBackends exceeded */
+ elog(FATAL, "Sorry, too many clients already");
}
/*