> On 25 Feb 2025, at 20:19, Alexander Korotkov <aekorotkov@gmail.com> wrote:
>
>
Hi!
One little piece of code looks suspicious to me. But I was not raising concern because I see similar code everywhere in
thecodebase. But know Kirill asked to me explain what is going on and I cannot.
This seems to be relevant… so.
+ while (upto >= pg_atomic_read_u64(&XLogCtl->InitializedUpTo))
// Assume ConditionVariableBroadcast() happened here, but before next line
+ ConditionVariableSleep(&XLogCtl->InitializedUpToCondVar, WAIT_EVENT_WAL_BUFFER_INIT);
+ ConditionVariableCancelSleep();
Won’t this sleep wait forever?
I see about 20 other occurrences of similar code, so, perhaps, everything is fine. But I would greatly appreciate a
littlepointers on why it works.
Best regards, Andrey Borodin.