26 int *tranche_id = (
int *) ptr;
45 for (
int i = 0;
i < 100;
i++)
51 for (
int i = 0;
i < 100;
i++)
60 for (
int i = 0;
i < 100;
i++)
96 for (
int i = 0;
i < 10000;
i++)
103 for (
int i = 0;
i < 500;
i++)
void * dsa_get_address(dsa_area *area, dsa_pointer dp)
void dsa_detach(dsa_area *area)
void dsa_free(dsa_area *area, dsa_pointer dp)
#define dsa_create(tranche_id)
#define dsa_allocate(area, size)
void * GetNamedDSMSegment(const char *name, size_t size, void(*init_callback)(void *ptr), bool *found)
int LWLockNewTrancheId(const char *name)
ResourceOwner ResourceOwnerCreate(ResourceOwner parent, const char *name)
ResourceOwner CurrentResourceOwner
void ResourceOwnerRelease(ResourceOwner owner, ResourceReleasePhase phase, bool isCommit, bool isTopLevel)
void ResourceOwnerDelete(ResourceOwner owner)
@ RESOURCE_RELEASE_BEFORE_LOCKS
@ RESOURCE_RELEASE_AFTER_LOCKS
Datum test_dsa_basic(PG_FUNCTION_ARGS)
Datum test_dsa_resowners(PG_FUNCTION_ARGS)
PG_FUNCTION_INFO_V1(test_dsa_basic)
static void init_tranche(void *ptr)