Remove pointless struct from shmem code

This struct just added extra mental overhead.
pull/220/head
Andreas Karlsson 6 months ago committed by Andreas Karlsson
parent 1d1959d5be
commit d67ad2ab90
  1. 22
      contrib/pg_tde/src/common/pg_tde_shmem.c

@ -17,11 +17,6 @@
#include "storage/lwlock.h"
#include "storage/shmem.h"
typedef struct TdeSharedState
{
void *rawDsaArea; /* DSA area pointer to store cache hashes */
} TdeSharedState;
static void tde_shmem_shutdown(int code, Datum arg);
List *registeredShmemRequests = NIL;
@ -47,7 +42,6 @@ TdeRequiredSharedMemorySize(void)
if (routine->required_shared_mem_size)
sz = add_size(sz, routine->required_shared_mem_size());
}
sz = add_size(sz, sizeof(TdeSharedState));
return MAXALIGN(sz);
}
@ -61,25 +55,22 @@ void
TdeShmemInit(void)
{
bool found;
TdeSharedState *tdeState;
char *free_start;
Size required_shmem_size = TdeRequiredSharedMemorySize();
LWLockAcquire(AddinShmemInitLock, LW_EXCLUSIVE);
/* Create or attach to the shared memory state */
ereport(NOTICE, errmsg("TdeShmemInit: requested %ld bytes", required_shmem_size));
tdeState = ShmemInitStruct("pg_tde", required_shmem_size, &found);
free_start = ShmemInitStruct("pg_tde", required_shmem_size, &found);
if (!found)
{
/* First time through ... */
char *p = (char *) tdeState;
dsa_area *dsa;
ListCell *lc;
Size used_size = 0;
Size dsa_area_size;
p += MAXALIGN(sizeof(TdeSharedState));
used_size += MAXALIGN(sizeof(TdeSharedState));
/* Now place all shared state structures */
foreach(lc, registeredShmemRequests)
{
@ -88,19 +79,18 @@ TdeShmemInit(void)
if (routine->init_shared_state)
{
sz = routine->init_shared_state(p);
sz = routine->init_shared_state(free_start);
used_size += MAXALIGN(sz);
p += MAXALIGN(sz);
free_start += MAXALIGN(sz);
Assert(used_size <= required_shmem_size);
}
}
/* Create DSA area */
dsa_area_size = required_shmem_size - used_size;
Assert(dsa_area_size > 0);
tdeState->rawDsaArea = p;
ereport(LOG, errmsg("creating DSA area of size %lu", dsa_area_size));
dsa = dsa_create_in_place(tdeState->rawDsaArea,
dsa = dsa_create_in_place(free_start,
dsa_area_size,
LWLockNewTrancheId(), 0);
dsa_pin(dsa);
@ -112,7 +102,7 @@ TdeShmemInit(void)
TDEShmemSetupRoutine *routine = (TDEShmemSetupRoutine *) lfirst(lc);
if (routine->init_dsa_area_objects)
routine->init_dsa_area_objects(dsa, tdeState->rawDsaArea);
routine->init_dsa_area_objects(dsa, free_start);
}
ereport(LOG, errmsg("setting no limit to DSA area of size %lu", dsa_area_size));

Loading…
Cancel
Save