index ea11698a3582e0638b9b3b8bc8fdc9805812b47d..1a66896d902c90bb4c3b4c5ba15ceb0b6402e4b8 100644 (file)
@@ -160,7 +160,7 @@ pg_atomic_clear_flag_impl(volatile pg_atomic_flag *ptr)
static inline void
pg_atomic_init_u32_impl(volatile pg_atomic_uint32 *ptr, uint32 val_)
{
- pg_atomic_write_u32_impl(ptr, val_);
+ ptr->value = val_;
}
#endif
@@ -330,7 +330,7 @@ pg_atomic_read_u64_impl(volatile pg_atomic_uint64 *ptr)
static inline void
pg_atomic_init_u64_impl(volatile pg_atomic_uint64 *ptr, uint64 val_)
{
- pg_atomic_write_u64_impl(ptr, val_);
+ ptr->value = val_;
}
#endif
index ead3085831467a2bd11d4039f77c676145181357..e82ec2ab3941101cf19c46783ffc3bfc69fba9d0 100644 (file)
fun:IsBinaryCoercible
}
-# Atomic writes to 64bit atomic vars uses compare/exchange to
-# guarantee atomic writes of 64bit variables. pg_atomic_write is used
-# during initialization of the atomic variable; that leads to an
-# initial read of the old, undefined, memory value. But that's just to
-# make sure the swap works correctly.
-{
- uninitialized_atomic_init_u64
- Memcheck:Cond
- fun:pg_atomic_exchange_u64_impl
- fun:pg_atomic_write_u64_impl
- fun:pg_atomic_init_u64_impl
-}
-
-
# Python's allocator does some low-level tricks for efficiency. Those
# can be disabled for better instrumentation; but few people testing
# postgres will have such a build of python. So add broad