af8ab84157fde1807b6b17acac5c4438444a69fd
[openbsd] /
1 #include <chrono>
2 #include <thread>
3 #include <vector>
4
5 void *
6 thread_function (void *thread_marker)
7 {
8     int keep_going = 1; 
9     int my_value = *((int *)thread_marker);
10     int counter = 0;
11
12     while (counter < 20)
13     {
14         counter++; // Break here in thread body.
15         std::this_thread::sleep_for(std::chrono::microseconds(10));
16     }
17     return NULL;
18 }
19
20
21 int 
22 main ()
23 {
24     std::vector<std::thread> threads;
25
26     int thread_value = 0;
27     int i;
28
29     for (i = 0; i < 10; i++)
30     {
31         thread_value += 1;
32         threads.push_back(std::thread(thread_function, &thread_value));
33     }
34
35     for (i = 0; i < 10; i++)
36         threads[i].join();
37
38     return 0;
39 }