Hi,
On 2020-12-16 18:12:39 +0900, Fujii Masao wrote:
> - /* Wait to be signaled by UnpinBuffer() */
> + /*
> + * Wait to be signaled by UnpinBuffer().
> + *
> + * We assume that only UnpinBuffer() and the timeout requests established
> + * above can wake us up here. WakeupRecovery() called by walreceiver or
> + * SIGHUP signal handler, etc cannot do that because it uses the different
> + * latch from that ProcWaitForSignal() waits on.
> + */
> ProcWaitForSignal(PG_WAIT_BUFFER_PIN);
>
> /*
Isn't this comment bogus? The latch could e.g. be set by
procsignal_sigusr1_handler(), which the startup process uses. Or it could
already be set, when entering ResolveRecoveryConflictWithBufferPin().
Why is it even relevant that we only get woken up by UnpinBuffer()?
Greetings,
Andres Freund