Re: Rename ShmemVariableCache and initialize it in more standard way
Tristan Partin <tristan@neon.tech>
From: "Tristan Partin" <tristan@neon.tech>
To: "Heikki Linnakangas" <hlinnaka@iki.fi>, "pgsql-hackers"
<pgsql-hackers@postgresql.org>
Cc: "Andres Freund" <andres@anarazel.de>
Date: 2023-12-04T16:31:36Z
Lists: pgsql-hackers
On Mon Dec 4, 2023 at 6:49 AM CST, Heikki Linnakangas wrote:
> This came up in the "Refactoring backend fork+exec code" thread recently
> [0], but is independent of that work:
>
> On 11/07/2023 01:50, Andres Freund wrote:
> >> --- a/src/backend/storage/ipc/shmem.c
> >> +++ b/src/backend/storage/ipc/shmem.c
> >> @@ -144,6 +144,8 @@ InitShmemAllocation(void)
> >> /*
> >> * Initialize ShmemVariableCache for transaction manager. (This doesn't
> >> * really belong here, but not worth moving.)
> >> + *
> >> + * XXX: we really should move this
> >> */
> >> ShmemVariableCache = (VariableCache)
> >> ShmemAlloc(sizeof(*ShmemVariableCache));
> >
> > Heh. Indeed. And probably just rename it to something less insane.
>
> Here's a patch to allocate and initialize it with a pair of ShmemSize
> and ShmemInit functions, like all other shared memory structs.
>
> + if (!IsUnderPostmaster)
> + {
> + Assert(!found);
> + memset(ShmemVariableCache, 0, sizeof(VariableCacheData));
> + }
> + else
> + Assert(found);
Should the else branch instead be a fatal log?
Patches look good to me.
--
Tristan Partin
Neon (https://neon.tech)
Commits
-
Rename ShmemVariableCache to TransamVariables
- b31ba5310b51 17.0 landed
-
Initialize ShmemVariableCache like other shmem areas
- 15916ffb0468 17.0 landed