annotate compiler-rt/test/tsan/bench_local_mutex.cpp @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clangxx_tsan %s -o %t
anatofuz
parents:
diff changeset
2 // RUN: %run %t 2>&1 | FileCheck %s
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 // bench.h needs pthread barriers which are not available on OS X
anatofuz
parents:
diff changeset
5 // UNSUPPORTED: darwin
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 #include "bench.h"
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 pthread_mutex_t *mtx;
anatofuz
parents:
diff changeset
10 const int kStride = 16;
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 void thread(int tid) {
anatofuz
parents:
diff changeset
13 for (int i = 0; i < bench_niter; i++) {
anatofuz
parents:
diff changeset
14 pthread_mutex_lock(&mtx[tid * kStride]);
anatofuz
parents:
diff changeset
15 pthread_mutex_unlock(&mtx[tid * kStride]);
anatofuz
parents:
diff changeset
16 }
anatofuz
parents:
diff changeset
17 }
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 void bench() {
anatofuz
parents:
diff changeset
20 mtx = (pthread_mutex_t*)malloc(bench_nthread * kStride * sizeof(*mtx));
anatofuz
parents:
diff changeset
21 for (int i = 0; i < bench_nthread; i++) {
anatofuz
parents:
diff changeset
22 pthread_mutex_init(&mtx[i * kStride], 0);
anatofuz
parents:
diff changeset
23 pthread_mutex_lock(&mtx[i * kStride]);
anatofuz
parents:
diff changeset
24 pthread_mutex_unlock(&mtx[i * kStride]);
anatofuz
parents:
diff changeset
25 }
anatofuz
parents:
diff changeset
26 start_thread_group(bench_nthread, thread);
anatofuz
parents:
diff changeset
27 }
anatofuz
parents:
diff changeset
28
anatofuz
parents:
diff changeset
29 // CHECK: DONE
anatofuz
parents:
diff changeset
30