summaryrefslogtreecommitdiff
path: root/src/backend/storage/ipc/sinvaladt.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-11-21 06:36:08 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-11-21 06:36:08 +0000
commit8362be35e82574801113a7fe4dfdc3037010fc04 (patch)
treeb5603e45b2956d5dc8b52f9adf2c02f9d42494ed /src/backend/storage/ipc/sinvaladt.c
parent02d83d7565bfa306f876c3fecc89a159e28e0e3b (diff)
downloadpostgresql-8362be35e82574801113a7fe4dfdc3037010fc04.tar.gz
Code review for superuser_reserved_connections patch. Don't try to do
database access outside a transaction; revert bogus performance improvement in SIBackendInit(); improve comments; add documentation (this part courtesy Neil Conway).
Diffstat (limited to 'src/backend/storage/ipc/sinvaladt.c')
-rw-r--r--src/backend/storage/ipc/sinvaladt.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c
index b4ab1689f9..6850fa8cf5 100644
--- a/src/backend/storage/ipc/sinvaladt.c
+++ b/src/backend/storage/ipc/sinvaladt.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.48 2002/08/29 21:02:12 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.49 2002/11/21 06:36:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -92,13 +92,6 @@ SIBackendInit(SISeg *segP)
int index;
ProcState *stateP = NULL;
- if (segP->freeBackends == 0)
- {
- /* out of procState slots */
- MyBackendId = InvalidBackendId;
- return 0;
- }
-
/* Look for a free entry in the procState array */
for (index = 0; index < segP->lastBackend; index++)
{
@@ -111,9 +104,18 @@ SIBackendInit(SISeg *segP)
if (stateP == NULL)
{
- stateP = &segP->procState[segP->lastBackend];
- Assert(stateP->nextMsgNum < 0);
- segP->lastBackend++;
+ if (segP->lastBackend < segP->maxBackends)
+ {
+ stateP = &segP->procState[segP->lastBackend];
+ Assert(stateP->nextMsgNum < 0);
+ segP->lastBackend++;
+ }
+ else
+ {
+ /* out of procState slots */
+ MyBackendId = InvalidBackendId;
+ return 0;
+ }
}
MyBackendId = (stateP - &segP->procState[0]) + 1;