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

Reply via email to