Re: pgsql: Add pg_atomic_unlocked_write_u64

From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Add pg_atomic_unlocked_write_u64
Date: 2025-12-04 15:51:10
Message-ID: aTGt7q4Jvn97uGAx@nathan
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

On Wed, Dec 03, 2025 at 11:40:47PM +0000, Andres Freund wrote:
> Add pg_atomic_unlocked_write_u64
>
> The 64bit equivalent of pg_atomic_unlocked_write_u32(), to be used in an
> upcoming patch converting BufferDesc.state into a 64bit atomic.

I noticed that this new function was defined as

ptr->value = val;

and couldn't figure out why that was safe. Above
pg_atomic_unlocked_write_u32(), I see this comment:

* The write is guaranteed to succeed as a whole, i.e. it's not possible to
* observe a partial write for any reader. ...

But the new 64-bit version doesn't seem to be surrounded by a check for
PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY, and I found no discussion about it in
the commit message or the linked thread. Am I missing something here?

--
nathan

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2025-12-04 15:56:12 Re: pgsql: Add pg_atomic_unlocked_write_u64
Previous Message Peter Eisentraut 2025-12-04 10:34:53 pgsql: headerscheck ccache support

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Langote 2025-12-04 15:54:29 Re: Batching in executor
Previous Message Álvaro Herrera 2025-12-04 15:43:44 Re: Adding REPACK [concurrently]