Impose a full barrier in generic-xlc.h atomics functions.
authorNoah Misch <noah@leadboat.com>
Wed, 27 Apr 2016 01:53:58 +0000 (21:53 -0400)
committerNoah Misch <noah@leadboat.com>
Wed, 27 Apr 2016 01:54:07 +0000 (21:54 -0400)
commitf9989482d0a24cd69f574b805db770980603a5ca
treec228f8965ccab26f1001237a4110307d711e5bd3
parent46e006d64bd7ab34655c1e870786ae3932089a08
Impose a full barrier in generic-xlc.h atomics functions.

pg_atomic_compare_exchange_*_impl() were providing only the semantics of
an acquire barrier.  Buildfarm members hornet and mandrill revealed this
deficit beginning with commit 008608b9d51061b1f598c197477b3dc7be9c4a64.
While we have no report of symptoms in 9.5, we can't rule out the
possibility of certain compilers, hardware, or extension code relying on
these functions' specified barrier semantics.  Back-patch to 9.5, where
commit b64d92f1a5602c55ee8b27a7ac474f03b7aee340 introduced atomics.

Reviewed by Andres Freund.
src/include/port/atomics/generic-xlc.h