diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2020-11-02 19:23:18 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2020-11-02 19:23:18 +0200 |
commit | deb2b3e6e63520fad4843f81419b42238a886afe (patch) | |
tree | 15dedfab78da4ad20ce272e65d7a7876ae717181 /test cases/common/95 threads/threadprog.cpp | |
parent | ff50f724bbf49739abbee9cbb4c8e6200849738f (diff) | |
download | meson-dircondense2.zip meson-dircondense2.tar.gz meson-dircondense2.tar.bz2 |
Condense test directory names again.dircondense2
Diffstat (limited to 'test cases/common/95 threads/threadprog.cpp')
-rw-r--r-- | test cases/common/95 threads/threadprog.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test cases/common/95 threads/threadprog.cpp b/test cases/common/95 threads/threadprog.cpp new file mode 100644 index 0000000..3c69dc3 --- /dev/null +++ b/test cases/common/95 threads/threadprog.cpp @@ -0,0 +1,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 |