6 /* For data race instrumentation */
9 struct mcs_mutex *mutex;
10 static uint32_t shared;
12 void threadA(void *arg)
14 mcs_mutex::guard g(mutex);
15 printf("store: %d\n", 17);
16 store_32(&shared, 17);
19 void threadB(void *arg)
21 mcs_mutex::guard g(mutex);
22 printf("load: %u\n", load_32(&shared));
25 int user_main(int argc, char **argv)
29 mutex = new mcs_mutex();
31 thrd_create(&A, &threadA, NULL);
32 thrd_create(&B, &threadB, NULL);