This comment in UpdateFullPageWrites() seems to be inaccurate:

     * It's safe to check the shared full_page_writes without the lock,
     * because we assume that there is no concurrently running process which
     * can update it.

That assumption does not hold on any sane SMP system.

I think the real reason is that we assume that read/write to an integer is
atomic, like we do for TransactionId variables:

heapam.c: "TransactionId read/write is assumed atomic anyway."

Best regards,

PS: As usual, I hope I am not missing something very obvious.
-- 
Gurjeet Singh

http://gurjeet.singh.im/

Reply via email to