1*6d1f8609SDmitry Vyukov // RUN: %clangxx_tsan %s -o %t 2*6d1f8609SDmitry Vyukov // RUN: %run %t 2>&1 | FileCheck %s 3*6d1f8609SDmitry Vyukov 4*6d1f8609SDmitry Vyukov // bench.h needs pthread barriers which are not available on OS X 5*6d1f8609SDmitry Vyukov // UNSUPPORTED: darwin 6*6d1f8609SDmitry Vyukov 7*6d1f8609SDmitry Vyukov #include "bench.h" 8*6d1f8609SDmitry Vyukov thread(int tid)9*6d1f8609SDmitry Vyukovvoid thread(int tid) { 10*6d1f8609SDmitry Vyukov void **blocks = new void *[bench_mode]; 11*6d1f8609SDmitry Vyukov for (int i = 0; i < bench_niter; i++) { 12*6d1f8609SDmitry Vyukov for (int j = 0; j < bench_mode; j++) 13*6d1f8609SDmitry Vyukov blocks[j] = malloc(8); 14*6d1f8609SDmitry Vyukov for (int j = 0; j < bench_mode; j++) 15*6d1f8609SDmitry Vyukov free(blocks[j]); 16*6d1f8609SDmitry Vyukov } 17*6d1f8609SDmitry Vyukov delete[] blocks; 18*6d1f8609SDmitry Vyukov } 19*6d1f8609SDmitry Vyukov bench()20*6d1f8609SDmitry Vyukovvoid bench() { start_thread_group(bench_nthread, thread); } 21*6d1f8609SDmitry Vyukov 22*6d1f8609SDmitry Vyukov // CHECK: DONE 23