On Mon, 17 May 2021 at 00:11, Tatsuo Ishii <is...@sraoss.co.jp> wrote:
> I think there is a typo in src/backend/storage/lmgr/README.barrier.
> Attached patch should fix it.

Yeah looks like a typo to me.

I wonder if we also need to fix this part:

> either one does their writes.  Eventually we might be able to use an atomic
> fetch-and-add instruction for this specific case on architectures that support
> it, but we can't rely on that being available everywhere, and we currently
> have no support for it at all.  Use a lock.

That seems to have been written at a time before we got atomics.

The following also might want to mention atomics too:

> 2. Eight-byte loads and stores aren't necessarily atomic.  We assume in
> various places in the source code that an aligned four-byte load or store is
> atomic, and that other processes therefore won't see a half-set value.
> Sadly, the same can't be said for eight-byte value: on some platforms, an
> aligned eight-byte load or store will generate two four-byte operations.  If
> you need an atomic eight-byte read or write, you must make it atomic with a
> lock.

David


Reply via email to