brintos

brintos / llvm-project-archived public Read only

0
0
Text · 626 B · 720c2e0 Raw
31 lines · plain
1// RUN: %clangxx_tsan %s -o %t2// RUN: %run %t 2>&1 | FileCheck %s3 4#include <iostream>5#include <future>6#include <vector>7 8int main(int argc, const char *argv[]) {9  fprintf(stderr, "Hello world.\n");10 11  auto my_task = [] { return 42; };12 13  std::vector<std::thread> threads;14 15  for (int i = 0; i < 100; i++) {16    std::packaged_task<int(void)> task(my_task);17    std::future<int> future = task.get_future();18    threads.push_back(std::thread(std::move(task)));19  }20 21  for (auto &t : threads) {22    t.join();23  }24 25  fprintf(stderr, "Done.\n");26}27 28// CHECK: Hello world.29// CHECK-NOT: WARNING: ThreadSanitizer30// CHECK: Done.31