3 * @brief Independent read and independent write test
12 //#include "wildcard.h"
13 //#include "model-assert.h"
20 int r1, r2, r3, r4; /* "local" variables */
22 static void *a(void *obj)
24 x.store(1, memory_order_relaxed);
25 y.store(1, memory_order_relaxed);
31 static void *b(void *obj)
33 y.store(1, memory_order_relaxed);
38 static void *c(void *obj)
40 r1 = x.load(memory_order_acquire);
41 r2 = y.load(memory_order_relaxed);
46 static void *d(void *obj)
48 r3 = y.load(memory_order_acquire);
49 r4 = x.load(memory_order_relaxed);
55 int main(int argc, char **argv)
57 printf("Main thread starts\n");
59 x.store(2, memory_order_relaxed);
60 y.store(2, memory_order_relaxed);
62 r1 = x.load(memory_order_relaxed);
65 // x.compare_exchange_strong(r1, r2);
66 // r3 = x.load(memory_order_relaxed);
68 // printf("%d\n", r3);
70 printf("Main thread is finished\n");