Hello, I am using GCC Atomic operations, e.g. __sync_bool_compare_and_swap to do some low level sync stuff. I have the following questions: 1) are these SMP-safe on x86, i.e. will the result be visible to all CPUs after applying these functions? 2) otherwise, does it requires some sort of memory barrier/fence to flush the result? 3) do I have to use "volatile" with atomic operations? Thank you!