Add simple thread example

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2013-08-12 14:10:21 -07:00
parent 2ad9c89684
commit 276240748e
2 changed files with 33 additions and 0 deletions

View file

@ -25,3 +25,6 @@ add_test(options ${CMAKE_CURRENT_BINARY_DIR}/options)
add_executable(scoped_map scoped_map.cpp)
target_link_libraries(scoped_map ${EXTRA_LIBS})
add_test(scoped_map ${CMAKE_CURRENT_BINARY_DIR}/scoped_map)
add_executable(thread thread.cpp)
target_link_libraries(thread ${EXTRA_LIBS})
add_test(thread ${CMAKE_CURRENT_BINARY_DIR}/thread)

30
src/tests/util/thread.cpp Normal file
View file

@ -0,0 +1,30 @@
/*
Copyright (c) 2013 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Author: Leonardo de Moura
*/
#include <thread>
#include <iostream>
#include <mutex>
#include <vector>
static void foo() {
static thread_local std::vector<int> v(1024);
if (v.size() != 1024) {
std::cerr << "Error\n";
exit(1);
}
}
static void tst1() {
unsigned n = 5;
for (unsigned i = 0; i < n; i++) {
std::thread t([](){ foo(); });
t.join();
}
}
int main() {
tst1();
}