Re: introduce dynamic shared memory registry
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Cc: Abhijit Menon-Sen <ams@toroid.org>, Michael Paquier <michael@paquier.xyz>, Robert Haas <robertmhaas@gmail.com>, pgsql-hackers@postgresql.org
Date: 2024-01-16T16:07:48Z
Lists: pgsql-hackers
Attachments
On Tue, Jan 16, 2024 at 10:28:29AM +0530, Bharath Rupireddy wrote: > I think it's better for GetNamedDSMSegment() to error out on empty > 'name' and size 0. This makes the user-facing function > GetNamedDSMSegment more concrete. Agreed, thanks for the suggestion. > +void * > +GetNamedDSMSegment(const char *name, size_t size, > + void (*init_callback) (void *ptr), bool *found) > > + Assert(found); > > Why is input parameter 'found' necessary to be passed by the caller? > Neither the test module added, nor the pg_prewarm is using the found > variable. The function will anyway create the DSM segment if one with > the given name isn't found. IMO, found is an optional parameter for > the caller. So, the assert(found) isn't necessary. The autoprewarm change (0003) does use this variable. I considered making it optional (i.e., you could pass in NULL if you didn't want it), but I didn't feel like the extra code in GetNamedDSMSegment() to allow this was worth it so that callers could avoid creating a single bool. -- Nathan Bossart Amazon Web Services: https://aws.amazon.com
Commits
-
Fix possible NULL pointer dereference in GetNamedDSMSegment().
- 4372adfa24f2 17.0 landed
-
Teach autoprewarm to use the dynamic shared memory registry.
- abb0b4fc03fc 17.0 landed
-
Introduce the dynamic shared memory registry.
- 8b2bcf3f287c 17.0 landed
-
doc: Reorganize section for shared memory and LWLocks.
- 964152c476f2 17.0 landed