From d5b200b89adb8c32e5061572cd21edd75c977c05 Mon Sep 17 00:00:00 2001 From: Brian Demsky Date: Thu, 21 Mar 2013 15:18:30 -0700 Subject: [PATCH 1/1] add test case... --- test/nestedpromise.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 test/nestedpromise.c diff --git a/test/nestedpromise.c b/test/nestedpromise.c new file mode 100644 index 0000000..e87cce9 --- /dev/null +++ b/test/nestedpromise.c @@ -0,0 +1,42 @@ +#include +#include +#include +#include + +#include "librace.h" +#include "model-assert.h" + +atomic_int x; +atomic_int y; +atomic_int z; +static void a(void *obj) +{ + atomic_load_explicit(&z, memory_order_relaxed); // this is only for schedule control + int t1=atomic_load_explicit(&x, memory_order_relaxed); + atomic_store_explicit(&y, 1, memory_order_relaxed); + printf("t1=%d\n",t1); +} + +static void b(void *obj) +{ + int t2=atomic_load_explicit(&y, memory_order_relaxed); + atomic_store_explicit(&x, t2, memory_order_relaxed); +} + +int user_main(int argc, char **argv) +{ + thrd_t t1, t2; + + + atomic_init(&x, 0); + atomic_init(&y, 0); + atomic_init(&z, 0); + thrd_create(&t1, (thrd_start_t)&a, NULL); + thrd_create(&t2, (thrd_start_t)&b, NULL); + + thrd_join(t1); + thrd_join(t2); + + + return 0; +} -- 2.34.1