| /* 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(int, char**) { |
| 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() { |
| printf("Printing from a thread.\n"); |
| } |
| |
| int main(int, char**) { |
| printf("Starting thread.\n"); |
| std::thread th(main_func); |
| th.join(); |
| printf("Stopped thread.\n"); |
| return 0; |
| } |
| |
| #endif |