X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=barrier%2Fbarrier.cc;h=5c99f650f1b0f625b515da1d51a7968a31d4c65d;hb=a5efb65980dd2d82ed59a3b66d34a524e373a64d;hp=093da10f4106e8e7baef84d68c4756c1a6221656;hpb=40b27f40998eed81640b016094bacf79df96d377;p=model-checker-benchmarks.git 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; }