25 lines · cpp
1// RUN: %clangxx_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s2#include "test.h"3 4int X = 0;5 6void *Thread(void *p) {7 X = 42;8 barrier_wait(&barrier);9 return 0;10}11 12int main() {13 barrier_init(&barrier, 2);14 pthread_t t;15 sleep(1); // must not appear in the report16 pthread_create(&t, 0, Thread, 0);17 barrier_wait(&barrier);18 X = 43;19 pthread_join(t, 0);20 return 0;21}22 23// CHECK: WARNING: ThreadSanitizer: data race24// CHECK-NOT: As if synchronized via sleep25