// This example uses a non-standard simplified thread composition // syntax. Triple braces enclose a list of threads with triple bar // separating each thread. int main() { atomic_int x = 0; atomic_int y = 0; {{{ { x.store(1,mo_relaxed); atomic_thread_fence (mo_seq_cst); printf("%dn", y.load(mo_relaxed)); } ||| { y.store(1,mo_relaxed); atomic_thread_fence (mo_seq_cst); printf("%dn", x.load(mo_relaxed)); } }}}; return 0; }