3 #include "libthreads.h"
7 static void a(atomic_int *obj)
13 printf("load 32 yields: %d\n", load_32(&i));
15 for (i = 0; i < 2; i++) {
16 printf("Thread %d, loop %d\n", thrd_current(), i);
19 ret = atomic_load(obj);
20 printf("Read value: %d\n", ret);
23 atomic_store(obj, i + 1);
24 printf("Write value: %d\n", i + 1);
37 printf("Thread %d: creating 2 threads\n", thrd_current());
38 thrd_create(&t1, (thrd_start_t)&a, &obj);
39 thrd_create(&t2, (thrd_start_t)&a, &obj);
43 printf("Thread %d is finished\n", thrd_current());