On 14 August 2015 at 01:37, Andrey Semashev wrote:
> 1. Is my test valid or is there a flaw that I'm missing?

The cppmem tool at http://svr-pes20-cppmem.cl.cam.ac.uk/cppmem/ shows
that there are consistent executions where (x==0 && y==0) is true. I
used this code:

int main() {
  atomic_int a = 0;
  atomic_int b = 0;
  int x, y;
  {{{
    {
      a.store(1,mo_seq_cst);
      a.load(mo_relaxed);
      x = b.load(mo_relaxed);
    }
  |||
    {
      b.store(1, mo_seq_cst);
      b.load(mo_relaxed);
      y = a.load(mo_relaxed);
    }
  }}}
  return 0;
}

Reply via email to