> > I went back-forth on if it makes sense to provide the name as an > > extra argument and decided it provides more flexibility. For example > > I can use the same init callback and arguments for different segments. > > If the initialization callback function needed the name, it could be > provided via the "void *" callback argument, right? I'm not following why > we need to provide it separately.
While it's true it can be passed as extra data, it is less error-prone as we guarantee the real name of the segment is made available to the callback. Also a caller to GetNamedDSMSegment does not need to pass the name twice, as the name and as extra data. The most common case I would think is using the segment name as the tranche name when initializing a lwlock. -- Sami Imseih Amazon Web Services (AWS)
