diff options
Diffstat (limited to 'src/backend/storage/ipc')
-rw-r--r-- | src/backend/storage/ipc/ipci.c | 12 | ||||
-rw-r--r-- | src/backend/storage/ipc/sinvaladt.c | 14 |
2 files changed, 14 insertions, 12 deletions
diff --git a/src/backend/storage/ipc/ipci.c b/src/backend/storage/ipc/ipci.c index 0a75af6c3e0..fb27b92d224 100644 --- a/src/backend/storage/ipc/ipci.c +++ b/src/backend/storage/ipc/ipci.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipci.c,v 1.18 1999/02/13 23:18:11 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipci.c,v 1.19 1999/02/19 06:06:04 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -44,17 +44,19 @@ SystemPortAddressCreateIPCKey(SystemPortAddress address) CreateSharedMemoryAndSemaphores is called exactly *ONCE* by the postmaster. - It is *NEVER* called by the postgres backend + It is *NEVER* called by the postgres backend, + except in the case of a standalone backend. 0) destroy any existing semaphores for both buffer and lock managers. 1) create the appropriate *SHARED* memory segments for the two resource managers. + 2) create shared semaphores as needed. **************************************************/ void -CreateSharedMemoryAndSemaphores(IPCKey key) +CreateSharedMemoryAndSemaphores(IPCKey key, int maxBackends) { int size; @@ -98,7 +100,7 @@ CreateSharedMemoryAndSemaphores(IPCKey key) * do process table stuff * ---------------- */ - InitProcGlobal(key); + InitProcGlobal(key, maxBackends); on_shmem_exit(ProcFreeAllSemaphores, NULL); CreateSharedInvalidationState(key); @@ -120,7 +122,7 @@ AttachSharedMemoryAndSemaphores(IPCKey key) */ if (key == PrivateIPCKey) { - CreateSharedMemoryAndSemaphores(key); + CreateSharedMemoryAndSemaphores(key, 1); return; } diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c index 0eee0c80222..c5dcea61aef 100644 --- a/src/backend/storage/ipc/sinvaladt.c +++ b/src/backend/storage/ipc/sinvaladt.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.16 1999/02/13 23:18:16 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.17 1999/02/19 06:06:03 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -119,7 +119,7 @@ SIAssignBackendId(SISeg *segInOutP, BackendTag backendTag) stateP = NULL; - for (index = 0; index < MaxBackendId; index += 1) + for (index = 0; index < MAXBACKENDS; index++) { if (segInOutP->procState[index].tag == InvalidBackendTag || segInOutP->procState[index].tag == backendTag) @@ -141,7 +141,7 @@ SIAssignBackendId(SISeg *segInOutP, BackendTag backendTag) /* verify that all "procState" entries checked for matching tags */ - for (index += 1; index < MaxBackendId; index += 1) + for (index++; index < MAXBACKENDS; index++) { if (segInOutP->procState[index].tag == backendTag) { @@ -565,7 +565,7 @@ SIDecProcLimit(SISeg *segP, int num) { int i; - for (i = 0; i < MaxBackendId; i++) + for (i = 0; i < MAXBACKENDS; i++) { /* decrement only, if there is a limit > 0 */ if (segP->procState[i].limit > 0) @@ -622,7 +622,7 @@ SISetProcStateInvalid(SISeg *segP) { int i; - for (i = 0; i < MaxBackendId; i++) + for (i = 0; i < MAXBACKENDS; i++) { if (segP->procState[i].limit == 0) { @@ -696,7 +696,7 @@ SIDelExpiredDataEntries(SISeg *segP) h; min = 9999999; - for (i = 0; i < MaxBackendId; i++) + for (i = 0; i < MAXBACKENDS; i++) { h = SIGetProcStateLimit(segP, i); if (h >= 0) @@ -740,7 +740,7 @@ SISegInit(SISeg *segP) SISetEndEntryChain(segP, InvalidOffset); SISetNumEntries(segP, 0); SISetMaxNumEntries(segP, MAXNUMMESSAGES); - for (i = 0; i < MaxBackendId; i++) + for (i = 0; i < MAXBACKENDS; i++) { segP->procState[i].limit = -1; /* no backend active !! */ segP->procState[i].resetState = false; |