summaryrefslogtreecommitdiff
path: root/src/backend/postmaster
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2010-04-28 16:54:16 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2010-04-28 16:54:16 +0000
commit77acab75dfe2e4741c25c0cf550266caef1eebd2 (patch)
tree1a5d86661c9394e2e79ae038775e874395f24f59 /src/backend/postmaster
parent5f70a04c56b69fff0f356abae3091eaa54038a5b (diff)
downloadpostgresql-77acab75dfe2e4741c25c0cf550266caef1eebd2.tar.gz
Modify ShmemInitStruct and ShmemInitHash to throw errors internally,
rather than returning NULL for some-but-not-all failures as they used to. Remove now-redundant tests for NULL from call sites. We had to do something about this because many call sites were failing to check for NULL; and changing it like this seems a lot more useful and mistake-proof than adding checks to the call sites without them.
Diffstat (limited to 'src/backend/postmaster')
-rw-r--r--src/backend/postmaster/autovacuum.c6
-rw-r--r--src/backend/postmaster/bgwriter.c20
2 files changed, 10 insertions, 16 deletions
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index 8de6d878dd..78f0667271 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -55,7 +55,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.109 2010/02/26 02:00:55 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.110 2010/04/28 16:54:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2771,10 +2771,6 @@ AutoVacuumShmemInit(void)
ShmemInitStruct("AutoVacuum Data",
AutoVacuumShmemSize(),
&found);
- if (AutoVacuumShmem == NULL)
- ereport(FATAL,
- (errcode(ERRCODE_OUT_OF_MEMORY),
- errmsg("not enough shared memory for autovacuum")));
if (!IsUnderPostmaster)
{
diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c
index 9a3956a509..72737ab226 100644
--- a/src/backend/postmaster/bgwriter.c
+++ b/src/backend/postmaster/bgwriter.c
@@ -38,7 +38,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.67 2010/02/05 23:37:43 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.68 2010/04/28 16:54:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -890,16 +890,14 @@ BgWriterShmemInit(void)
ShmemInitStruct("Background Writer Data",
BgWriterShmemSize(),
&found);
- if (BgWriterShmem == NULL)
- ereport(FATAL,
- (errcode(ERRCODE_OUT_OF_MEMORY),
- errmsg("not enough shared memory for background writer")));
- if (found)
- return; /* already initialized */
-
- MemSet(BgWriterShmem, 0, sizeof(BgWriterShmemStruct));
- SpinLockInit(&BgWriterShmem->ckpt_lck);
- BgWriterShmem->max_requests = NBuffers;
+
+ if (!found)
+ {
+ /* First time through, so initialize */
+ MemSet(BgWriterShmem, 0, sizeof(BgWriterShmemStruct));
+ SpinLockInit(&BgWriterShmem->ckpt_lck);
+ BgWriterShmem->max_requests = NBuffers;
+ }
}
/*