X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=barrier%2Fbarrier.cc;fp=barrier%2Fbarrier.cc;h=093da10f4106e8e7baef84d68c4756c1a6221656;hb=66c6a6bc064c305840027fd6141ea14276c928c2;hp=0000000000000000000000000000000000000000;hpb=16e76455012b6b145747c21a3bc614de54d2203a;p=model-checker-benchmarks.git diff --git a/barrier/barrier.cc b/barrier/barrier.cc new file mode 100644 index 0000000..093da10 --- /dev/null +++ b/barrier/barrier.cc @@ -0,0 +1,35 @@ +#include +#include + +#include "barrier.h" + +#include "librace.h" + +spinning_barrier *barr; +int var = 0; + +void threadA(void *arg) +{ + store_32(&var, 1); + barr->wait(); +} + +void threadB(void *arg) +{ + barr->wait(); + printf("var = %d\n", load_32(&var)); +} + +int user_main(int argc, char **argv) +{ + thrd_t t2, t3; + + barr = new spinning_barrier(2); + + thrd_create(&t2, &threadA, NULL); + thrd_create(&t3, &threadB, NULL); + thrd_join(t2); + thrd_join(t3); + + return 0; +}