> On 25 Feb 2025, at 20:19, Alexander Korotkov <aekorot...@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 the codebase. 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 little pointers on why it works.


Best regards, Andrey Borodin.

Reply via email to