xref: /linux/tools/memory-model/litmus-tests/R+poonceonces.litmus (revision 24168c5e6dfbdd5b414f048f47f75d64533296ca)
1C R+poonceonces
2
3(*
4 * Result: Sometimes
5 *
6 * This is the unordered (thus lacking smp_mb()) version of one of the
7 * classic counterintuitive litmus tests that illustrates the effects of
8 * store propagation delays.
9 *)
10
11{}
12
13P0(int *x, int *y)
14{
15	WRITE_ONCE(*x, 1);
16	WRITE_ONCE(*y, 1);
17}
18
19P1(int *x, int *y)
20{
21	int r0;
22
23	WRITE_ONCE(*y, 2);
24	r0 = READ_ONCE(*x);
25}
26
27exists (y=2 /\ 1:r0=0)
28