X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2Fpending-release.c;h=a68f24dfc7b005fd279e9c4c7078d25baedc6598;hb=c2b7fc251420c50f51bf9c7f07f37d82b2bfc068;hp=37433b150fb5ed7163d31d69aaf3876997cf37c9;hpb=f94de5b6daa067501562ed3047bfb6b4939f9435;p=model-checker.git diff --git a/test/pending-release.c b/test/pending-release.c index 37433b1..a68f24d 100644 --- a/test/pending-release.c +++ b/test/pending-release.c @@ -6,15 +6,17 @@ */ #include +#include +#include -#include "libthreads.h" #include "librace.h" -#include "stdatomic.h" atomic_int x; +int var = 0; static void a(void *obj) { + store_32(&var, 1); atomic_store_explicit(&x, *((int *)obj), memory_order_release); atomic_store_explicit(&x, *((int *)obj) + 1, memory_order_relaxed); } @@ -22,7 +24,8 @@ static void a(void *obj) static void b2(void *obj) { int r = atomic_load_explicit(&x, memory_order_acquire); - printf("r = %u\n", r); + printf("r = %d\n", r); + store_32(&var, 3); } static void b1(void *obj) @@ -30,7 +33,8 @@ static void b1(void *obj) thrd_t t3, t4; int i = 7; int r = atomic_load_explicit(&x, memory_order_acquire); - printf("r = %u\n", r); + printf("r = %d\n", r); + store_32(&var, 2); thrd_create(&t3, (thrd_start_t)&a, &i); thrd_create(&t4, (thrd_start_t)&b2, NULL); thrd_join(t3); @@ -42,7 +46,7 @@ static void c(void *obj) atomic_store_explicit(&x, 22, memory_order_relaxed); } -void user_main() +int user_main(int argc, char **argv) { thrd_t t1, t2, t5; int i = 4; @@ -56,4 +60,6 @@ void user_main() thrd_join(t1); thrd_join(t2); thrd_join(t5); + + return 0; }