1 // RUN: %clangxx_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s
14 void *AsyncInit(void *p
) {
15 return new Cache((int)(long)p
);
18 Cache
*CreateCache() {
20 pthread_create(&t
, 0, AsyncInit
, (void*)(long)rand());
22 pthread_join(t
, &res
);
26 void *Thread1(void *x
) {
27 static Cache
*c
= CreateCache();
35 pthread_create(&t
[0], 0, Thread1
, 0);
36 pthread_create(&t
[1], 0, Thread1
, 0);
37 pthread_join(t
[0], 0);
38 pthread_join(t
[1], 0);
39 fprintf(stderr
, "PASS\n");
42 // CHECK-NOT: WARNING: ThreadSanitizer: data race