1 /* { dg-shouldfail "tsan" } */
2 /* { dg-additional-options "-ldl" } */
5 #include "tsan_barrier.h"
7 static pthread_barrier_t barrier
;
11 void *Thread1(void *x
) {
12 pthread_barrier_init(&B
, 0, 2);
13 barrier_wait(&barrier
);
14 pthread_barrier_wait(&B
);
18 void *Thread2(void *x
) {
19 barrier_wait(&barrier
);
20 pthread_barrier_wait(&B
);
25 barrier_init(&barrier
, 2);
27 pthread_create(&t
, NULL
, Thread1
, NULL
);
29 pthread_join(t
, NULL
);
30 pthread_barrier_destroy(&B
);
34 /* { dg-output "WARNING: ThreadSanitizer: data race.*(\n|\r\n|\r)" } */