C C-IngoMolnar-After.litmus { } P0(int *a, int *b, int *c) { int r1; r1 = READ_ONCE(*a); if (r1) WRITE_ONCE(*b, 1); else WRITE_ONCE(*b, 2); WRITE_ONCE(*c, 1); } P1(int *a, int *c) { int r2; r2 = READ_ONCE(*c); smp_mb(); WRITE_ONCE(*a, 1); } Observed 1:r2=1; 0:r1=1;