On Sun, 2023-04-02 at 15:29 -0700, Andres Freund wrote: > I agree that the *wait* has to go through condition_variable.c, but > it doesn't > seem right that creation of the WES needs to go through > condition_variable.c.
The kind of WES required by a CV is an implementation detail, so I was concerned about making too many assumptions across different APIs. But what I ended up with is arguably not better, so perhaps I should do it your way and then just have some comments about what assumptions are being made? > The only thing that ConditionVariableEventSleep() seems to require is > that the > WES is waiting for MyLatch. You don't even need a separate WES for > that, the > already existing WES should suffice. By "already existing" WES, I assume you mean FeBeWaitSet? Yes, that mostly matches, but it uses WL_POSTMASTER_DEATH instead of WL_EXIT_ON_PM_DEATH, so I'd need to handle PM death in condition_variable.c. That's trivial to do, though. Regards, Jeff Davis