diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2010-04-28 16:54:16 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2010-04-28 16:54:16 +0000 |
commit | 77acab75dfe2e4741c25c0cf550266caef1eebd2 (patch) | |
tree | 1a5d86661c9394e2e79ae038775e874395f24f59 /src/backend/replication/walreceiverfuncs.c | |
parent | 5f70a04c56b69fff0f356abae3091eaa54038a5b (diff) | |
download | postgresql-77acab75dfe2e4741c25c0cf550266caef1eebd2.tar.gz postgresql-77acab75dfe2e4741c25c0cf550266caef1eebd2.zip |
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/replication/walreceiverfuncs.c')
-rw-r--r-- | src/backend/replication/walreceiverfuncs.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/backend/replication/walreceiverfuncs.c b/src/backend/replication/walreceiverfuncs.c index be305790fd3..78ee7fb9f7e 100644 --- a/src/backend/replication/walreceiverfuncs.c +++ b/src/backend/replication/walreceiverfuncs.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/replication/walreceiverfuncs.c,v 1.4 2010/02/26 02:00:57 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/replication/walreceiverfuncs.c,v 1.5 2010/04/28 16:54:15 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -58,17 +58,13 @@ WalRcvShmemInit(void) WalRcv = (WalRcvData *) ShmemInitStruct("Wal Receiver Ctl", WalRcvShmemSize(), &found); - if (WalRcv == NULL) - ereport(FATAL, - (errcode(ERRCODE_OUT_OF_MEMORY), - errmsg("not enough shared memory for walreceiver"))); - if (found) - return; /* already initialized */ - - /* Initialize the data structures */ - MemSet(WalRcv, 0, WalRcvShmemSize()); - WalRcv->walRcvState = WALRCV_STOPPED; - SpinLockInit(&WalRcv->mutex); + if (!found) + { + /* First time through, so initialize */ + MemSet(WalRcv, 0, WalRcvShmemSize()); + WalRcv->walRcvState = WALRCV_STOPPED; + SpinLockInit(&WalRcv->mutex); + } } /* Is walreceiver in progress (or starting up)? */ |