I've spent some time getting this prepared for commit, so apologies if I am
steamrolling over some of the latest discussion points. The majority of
what I've changed amounts to what I'd characterize as relatively minor
editorialization, but I'd imagine reasonable people could disagree. The
bigger things I've changed include:
* I've moved the DSM registry adjustments to be a prerequisite patch. I
noticed that we can also stop tracking the tranche names there since we
always use the name of the DSM registry entry.
* I modified the array of tranche names to be a char ** to simplify
lookups. I also changed how it is first initialized in CreateLWLocks() a
bit.
* I've left out the tests for now. Those are great for the development
phase, but I'm not completely sold on committing them. In any case, I'd
probably treat that as a follow-up effort once this stuff is committed.
I think this patch set will require reworking the "GetNamedLWLockTranche
crashes on Windows in normal backend" patch [0], but AFAICT we can easily
adjust it to scan through NamedLWLockTrancheNames instead.
Overall, I'm pretty happy about these patches. They simplify the API and
the code while also fixing the problem with tranche name visibility.
[0] https://postgr.es/m/CAA5RZ0v1_15QPg5Sqd2Qz5rh_qcsyCeHHmRDY89xVHcy2yt5BQ%40mail.gmail.com
--
nathan