llvm-project
25 строк · 502.0 Байт
1// RUN: %clangxx_tsan %s -o %t
2// RUN: %run %t 2>&1 | FileCheck %s
3
4// bench.h needs pthread barriers which are not available on OS X
5// UNSUPPORTED: darwin
6
7#include "bench.h"
8
9int x;
10
11void thread(int tid) {
12if (tid == 0) {
13for (int i = 0; i < bench_niter; i++)
14__atomic_store_n(&x, 0, __ATOMIC_RELEASE);
15} else {
16for (int i = 0; i < bench_niter; i++)
17__atomic_load_n(&x, __ATOMIC_ACQUIRE);
18}
19}
20
21void bench() {
22start_thread_group(bench_nthread, thread);
23}
24
25// CHECK: DONE
26
27