mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
Remove ill-advised pre-check for DSM segment exhaustion.
dsm_control->nitems never decreases, so this is testing whether the server has *ever* run out of DSM segments, not whether it is *currently* out of DSM segments. Reported off-list by Amit Kapila.
This commit is contained in:
parent
33a2c5ecd6
commit
372b97097e
@ -466,18 +466,6 @@ dsm_create(Size size, int flags)
|
|||||||
if (!dsm_init_done)
|
if (!dsm_init_done)
|
||||||
dsm_backend_startup();
|
dsm_backend_startup();
|
||||||
|
|
||||||
/*
|
|
||||||
* If we've been instructed to return NULL when it's not possible to
|
|
||||||
* register another segment, check whether we seem to be at the limit.
|
|
||||||
* This allows us to avoid the overhead of creating a new segment only to
|
|
||||||
* immediately destroy it again. Since we don't take the lock here, the
|
|
||||||
* value we read might be slightly stale, but the remote possibility of
|
|
||||||
* an unnecessary failure here shouldn't trouble anyone too much.
|
|
||||||
*/
|
|
||||||
if ((flags & DSM_CREATE_NULL_IF_MAXSEGMENTS) != 0
|
|
||||||
&& dsm_control->nitems >= dsm_control->maxitems)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
/* Create a new segment descriptor. */
|
/* Create a new segment descriptor. */
|
||||||
seg = dsm_create_descriptor();
|
seg = dsm_create_descriptor();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user