Remove bogus assertion in pg_atomic_monotonic_advance_u64
Alvaro Herrera <alvherre@alvh.no-ip.org>
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
| Path | Change | +/− |
|---|---|---|
| src/include/port/atomics/arch-ppc.h | modified | +2 −0 |
| src/include/port/atomics/arch-x86.h | modified | +2 −0 |
| src/include/port/atomics/generic-gcc.h | modified | +3 −0 |
| src/include/port/atomics/generic-sunpro.h | modified | +1 −0 |
| src/include/port/atomics.h | modified | +6 −11 |
Discussion
- LogwrtResult contended spinlock 77 messages · 2020-08-31 → 2024-07-04