7 Sep
2022
7 Sep
'22
6:33 p.m.
On 8/23/22 08:37, Ion Gaztañaga via Boost-users wrote:
I looked at code of atomic_cas32() and it uses the legacy built-in __sync_val_compare_and_swap(). Can it be that that built-in isn't supported on ARM? Is there a newer built-in which should be used?
It could be. Can you test if __atomic_compare_exchange avoids the TSAN error?
inline boost::uint32_t atomic_cas32 ( volatile boost::uint32_t *mem , boost::uint32_t with, boost::uint32_t cmp) { __atomic_compare_exchange (const_castboost::uint32_t*(mem), &cmp, &with, false ,__ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); return cmp; }
I changed the code as you suggested, but I still get the same error. Cheers, Jens