This eliminates portability issues among platforms that don't have a pthreads implementation. Differential Revision: http://reviews.llvm.org/D12043 Reviewed By: Greg Clayton llvm-svn: 245234
40 lines
674 B
C++
40 lines
674 B
C++
#include <chrono>
|
|
#include <thread>
|
|
#include <vector>
|
|
|
|
void *
|
|
thread_function (void *thread_marker)
|
|
{
|
|
int keep_going = 1;
|
|
int my_value = *((int *)thread_marker);
|
|
int counter = 0;
|
|
|
|
while (counter < 20)
|
|
{
|
|
counter++; // Break here in thread body.
|
|
std::this_thread::sleep_for(std::chrono::microseconds(10));
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
|
|
int
|
|
main ()
|
|
{
|
|
std::vector<std::thread> threads;
|
|
|
|
int thread_value = 0;
|
|
int i;
|
|
|
|
for (i = 0; i < 10; i++)
|
|
{
|
|
thread_value += 1;
|
|
threads.push_back(std::thread(thread_function, &thread_value));
|
|
}
|
|
|
|
for (i = 0; i < 10; i++)
|
|
threads[i].join();
|
|
|
|
return 0;
|
|
}
|