summaryrefslogtreecommitdiff
path: root/src/backend/storage/ipc/dsm_registry.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/storage/ipc/dsm_registry.c')
-rw-r--r--src/backend/storage/ipc/dsm_registry.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/backend/storage/ipc/dsm_registry.c b/src/backend/storage/ipc/dsm_registry.c
index 66240318e83..072f9399969 100644
--- a/src/backend/storage/ipc/dsm_registry.c
+++ b/src/backend/storage/ipc/dsm_registry.c
@@ -180,11 +180,13 @@ init_dsm_registry(void)
* Initialize or attach a named DSM segment.
*
* This routine returns the address of the segment. init_callback is called to
- * initialize the segment when it is first created.
+ * initialize the segment when it is first created. 'arg' is passed through to
+ * the initialization callback function.
*/
void *
GetNamedDSMSegment(const char *name, size_t size,
- void (*init_callback) (void *ptr), bool *found)
+ void (*init_callback) (void *ptr, void *arg),
+ bool *found, void *arg)
{
DSMRegistryEntry *entry;
MemoryContext oldcontext;
@@ -235,7 +237,7 @@ GetNamedDSMSegment(const char *name, size_t size,
seg = dsm_create(size, 0);
if (init_callback)
- (*init_callback) (dsm_segment_address(seg));
+ (*init_callback) (dsm_segment_address(seg), arg);
dsm_pin_segment(seg);
dsm_pin_mapping(seg);