On Sat, Apr 8, 2017 at 12:50 AM, Andres Freund <[email protected]> wrote:
> Additionally optimize reads/writes to 64bit on a number of platforms > where aligned writes of that size are atomic. This can now be tested > with PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY. > BTW, PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY is never used. It's likely you meant something like this. diff --git a/src/include/port/atomics/generic.h b/src/include/port/atomics/generic.h new file mode 100644 index c094248..c430bf5 *** a/src/include/port/atomics/generic.h --- b/src/include/port/atomics/generic.h *************** pg_atomic_exchange_u64_impl(volatile pg_ *** 271,277 **** } #endif ! #ifndef PG_HAVE_ATOMIC_READ_U64 #define PG_HAVE_ATOMIC_READ_U64 static inline uint64 pg_atomic_read_u64_impl(volatile pg_atomic_uint64 *ptr) --- 271,277 ---- } #endif ! #if !defined(PG_HAVE_ATOMIC_READ_U64) && defined(PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY) #define PG_HAVE_ATOMIC_READ_U64 static inline uint64 pg_atomic_read_u64_impl(volatile pg_atomic_uint64 *ptr) *************** pg_atomic_read_u64_impl(volatile pg_atom *** 280,286 **** } #endif ! #ifndef PG_HAVE_ATOMIC_WRITE_U64 #define PG_HAVE_ATOMIC_WRITE_U64 static inline void pg_atomic_write_u64_impl(volatile pg_atomic_uint64 *ptr, uint64 val) --- 280,286 ---- } #endif ! #if !defined(PG_HAVE_ATOMIC_WRITE_U64) && defined(PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY) #define PG_HAVE_ATOMIC_WRITE_U64 static inline void pg_atomic_write_u64_impl(volatile pg_atomic_uint64 *ptr, uint64 val) ------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
