mirror of
https://github.com/postgres/postgres.git
synced 2025-12-13 14:22:43 +03:00
Add pg_atomic_unlocked_write_u64
The 64bit equivalent of pg_atomic_unlocked_write_u32(), to be used in an upcoming patch converting BufferDesc.state into a 64bit atomic. Reviewed-by: Melanie Plageman <melanieplageman@gmail.com> Discussion: https://postgr.es/m/fvfmkr5kk4nyex56ejgxj3uzi63isfxovp2biecb4bspbjrze7@az2pljabhnff
This commit is contained in:
@@ -488,6 +488,16 @@ pg_atomic_write_u64(volatile pg_atomic_uint64 *ptr, uint64 val)
|
|||||||
pg_atomic_write_u64_impl(ptr, val);
|
pg_atomic_write_u64_impl(ptr, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
pg_atomic_unlocked_write_u64(volatile pg_atomic_uint64 *ptr, uint64 val)
|
||||||
|
{
|
||||||
|
#ifndef PG_HAVE_ATOMIC_U64_SIMULATION
|
||||||
|
AssertPointerAlignment(ptr, 8);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
pg_atomic_unlocked_write_u64_impl(ptr, val);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
pg_atomic_write_membarrier_u64(volatile pg_atomic_uint64 *ptr, uint64 val)
|
pg_atomic_write_membarrier_u64(volatile pg_atomic_uint64 *ptr, uint64 val)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -297,6 +297,15 @@ pg_atomic_write_u64_impl(volatile pg_atomic_uint64 *ptr, uint64 val)
|
|||||||
#endif /* PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY && !PG_HAVE_ATOMIC_U64_SIMULATION */
|
#endif /* PG_HAVE_8BYTE_SINGLE_COPY_ATOMICITY && !PG_HAVE_ATOMIC_U64_SIMULATION */
|
||||||
#endif /* PG_HAVE_ATOMIC_WRITE_U64 */
|
#endif /* PG_HAVE_ATOMIC_WRITE_U64 */
|
||||||
|
|
||||||
|
#ifndef PG_HAVE_ATOMIC_UNLOCKED_WRITE_U64
|
||||||
|
#define PG_HAVE_ATOMIC_UNLOCKED_WRITE_U64
|
||||||
|
static inline void
|
||||||
|
pg_atomic_unlocked_write_u64_impl(volatile pg_atomic_uint64 *ptr, uint64 val)
|
||||||
|
{
|
||||||
|
ptr->value = val;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef PG_HAVE_ATOMIC_READ_U64
|
#ifndef PG_HAVE_ATOMIC_READ_U64
|
||||||
#define PG_HAVE_ATOMIC_READ_U64
|
#define PG_HAVE_ATOMIC_READ_U64
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user