brintos

brintos / llvm-project-archived public Read only

0
0
Text · 656 B · 66fd339 Raw
35 lines · c
1// RUN: %clang_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s2 3// pthread barriers are not available on OS X4// UNSUPPORTED: darwin5 6#include "test.h"7 8pthread_barrier_t B;9int Global;10 11void *Thread1(void *x) {12  pthread_barrier_init(&B, 0, 2);13  barrier_wait(&barrier);14  pthread_barrier_wait(&B);15  return NULL;16}17 18void *Thread2(void *x) {19  barrier_wait(&barrier);20  pthread_barrier_wait(&B);21  return NULL;22}23 24int main() {25  barrier_init(&barrier, 2);26  pthread_t t;27  pthread_create(&t, NULL, Thread1, NULL);28  Thread2(0);29  pthread_join(t, NULL);30  pthread_barrier_destroy(&B);31  return 0;32}33 34// CHECK:      WARNING: ThreadSanitizer: data race35