llvm-project

Форк
0
/
benign_race.cpp 
27 строк · 536.0 Байт
1
// RUN: %clang_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s
2
#include "test.h"
3

4
int Global;
5
int WTFGlobal;
6

7
void *Thread(void *x) {
8
  Global = 42;
9
  WTFGlobal = 142;
10
  barrier_wait(&barrier);
11
  return 0;
12
}
13

14
int main() {
15
  barrier_init(&barrier, 2);
16
  ANNOTATE_BENIGN_RACE(Global);
17
  WTF_ANNOTATE_BENIGN_RACE(WTFGlobal);
18
  pthread_t t;
19
  pthread_create(&t, 0, Thread, 0);
20
  barrier_wait(&barrier);
21
  Global = 43;
22
  WTFGlobal = 143;
23
  pthread_join(t, 0);
24
  fprintf(stderr, "OK\n");
25
}
26

27
// CHECK-NOT: WARNING: ThreadSanitizer: data race
28

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.