X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2Fuserprog.c;h=02a83b4b2f2469f6af1f59c77038ed95c7878998;hb=6fb7781c41cfed30851527911c4a48dae79cb107;hp=645dc3095a366abeb79c976d6d456b6381760a17;hpb=305c314f6e2e34396053c3974e3be3796a16e4e1;p=model-checker.git diff --git a/test/userprog.c b/test/userprog.c index 645dc30..02a83b4 100644 --- a/test/userprog.c +++ b/test/userprog.c @@ -1,8 +1,8 @@ #include +#include +#include -#include "libthreads.h" #include "librace.h" -#include "stdatomic.h" atomic_int x; atomic_int y; @@ -11,28 +11,30 @@ static void a(void *obj) { int r1=atomic_load_explicit(&y, memory_order_relaxed); atomic_store_explicit(&x, r1, memory_order_relaxed); - printf("r1=%u\n",r1); + printf("r1=%d\n",r1); } static void b(void *obj) { int r2=atomic_load_explicit(&x, memory_order_relaxed); atomic_store_explicit(&y, 42, memory_order_relaxed); - printf("r2=%u\n",r2); + printf("r2=%d\n",r2); } -void user_main() +int user_main(int argc, char **argv) { thrd_t t1, t2; atomic_init(&x, 0); atomic_init(&y, 0); - printf("Thread %d: creating 2 threads\n", thrd_current()); + printf("Main thread: creating 2 threads\n"); thrd_create(&t1, (thrd_start_t)&a, NULL); thrd_create(&t2, (thrd_start_t)&b, NULL); thrd_join(t1); thrd_join(t2); - printf("Thread %d is finished\n", thrd_current()); + printf("Main thread is finished\n"); + + return 0; }