... BTW, I wonder why you did not add pg_compiler_barrier_impl()
to our other use of __atomic_thread_fence:

#if !defined(pg_memory_barrier_impl)
#    if defined(HAVE_GCC__ATOMIC_INT32_CAS)
#        define pg_memory_barrier_impl()        
__atomic_thread_fence(__ATOMIC_SEQ_CST)
#    elif defined(__GNUC__)
#        define pg_memory_barrier_impl()        __sync_synchronize()
#    endif
#endif /* !defined(pg_memory_barrier_impl) */

If the problem is that Clang doesn't treat __atomic_thread_fence
as a compiler barrier, why is this usage safer than the other two?

                        regards, tom lane


Reply via email to