X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker-benchmarks.git;a=blobdiff_plain;f=barrier%2Fbarrier.cc;h=5c99f650f1b0f625b515da1d51a7968a31d4c65d;hp=093da10f4106e8e7baef84d68c4756c1a6221656;hb=991d0fdc0fb17f85d485c97dc2c5d8d57a98dad9;hpb=66c6a6bc064c305840027fd6141ea14276c928c2 diff --git a/barrier/barrier.cc b/barrier/barrier.cc index 093da10..5c99f65 100644 --- a/barrier/barrier.cc +++ b/barrier/barrier.cc @@ -20,16 +20,21 @@ void threadB(void *arg) printf("var = %d\n", load_32(&var)); } +#define NUMREADERS 1 int user_main(int argc, char **argv) { - thrd_t t2, t3; + thrd_t A, B[NUMREADERS]; + int i; - barr = new spinning_barrier(2); + barr = new spinning_barrier(NUMREADERS + 1); - thrd_create(&t2, &threadA, NULL); - thrd_create(&t3, &threadB, NULL); - thrd_join(t2); - thrd_join(t3); + thrd_create(&A, &threadA, NULL); + for (i = 0; i < NUMREADERS; i++) + thrd_create(&B[i], &threadB, NULL); + + for (i = 0; i < NUMREADERS; i++) + thrd_join(B[i]); + thrd_join(A); return 0; }