Remove bogus assertion in pg_atomic_monotonic_advance_u64

Alvaro Herrera <alvherre@alvh.no-ip.org>

Commit: 768f0c3e21b31f92ebb510a7e4d0c2cd1c1ecb97
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: 2024-07-04T11:25:31Z
Releases: 18.0
Remove bogus assertion in pg_atomic_monotonic_advance_u64

This code wanted to ensure that the 'exchange' variable passed to
pg_atomic_compare_exchange_u64 has correct alignment, but apparently
platforms don't actually require anything that doesn't come naturally.

While messing with pg_atomic_monotonic_advance_u64: instead of using
Max() to determine the value to return, just use
pg_atomic_compare_exchange_u64()'s return value to decide; also, use
pg_atomic_compare_exchange_u64 instead of the _impl version; also remove
the unnecessary underscore at the end of variable name "target".

Backpatch to 17, where this code was introduced by commit bf3ff7bf83bc.

Reported-by: Alexander Lakhin <exclusion@gmail.com>
Discussion: https://postgr.es/m/36796438-a718-cf9b-2071-b2c1b947c1b5@gmail.com

Files

Discussion