// 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; }
