Thread: pgsql: Impose a full barrier in generic-xlc.h atomics functions.

pgsql: Impose a full barrier in generic-xlc.h atomics functions.

From
Noah Misch
Date:
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.

Branch
------
REL9_5_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/f9989482d0a24cd69f574b805db770980603a5ca

Modified Files
--------------
src/include/port/atomics/generic-xlc.h | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)