blob: 3c69dc3a845bbe64589adac0e86a7ba6c568ca19 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
/* On Windows not all versions of VS support C++11 and
* some (most?) versions of mingw don't support std::thread,
* even though they do support c++11. Since we only care about
* threads working, do the test with raw win threads.
*/
#if defined _WIN32
#include<windows.h>
#include<stdio.h>
DWORD WINAPI thread_func(LPVOID) {
printf("Printing from a thread.\n");
return 0;
}
int main(void) {
printf("Starting thread.\n");
HANDLE th;
DWORD id;
th = CreateThread(NULL, 0, thread_func, NULL, 0, &id);
WaitForSingleObject(th, INFINITE);
printf("Stopped thread.\n");
return 0;
}
#else
#include<thread>
#include<cstdio>
void main_func(void) {
printf("Printing from a thread.\n");
}
int main(void) {
printf("Starting thread.\n");
std::thread th(main_func);
th.join();
printf("Stopped thread.\n");
return 0;
}
#endif
|