parent
6a5ec36aeb
commit
489ca238c5
2 changed files with 52 additions and 4 deletions
@ -1,7 +1,15 @@ |
|||||||
project('threads', 'cpp') |
project('threads', 'cpp', 'c') |
||||||
|
|
||||||
test('threadtest', |
threaddep = dependency('threads') |
||||||
executable('threadprog', 'threadprog.cpp', |
|
||||||
dependencies : dependency('threads') |
test('cppthreadtest', |
||||||
|
executable('cppthreadprog', 'threadprog.cpp', |
||||||
|
dependencies : threaddep |
||||||
|
) |
||||||
|
) |
||||||
|
|
||||||
|
test('cthreadtest', |
||||||
|
executable('cthreadprog', 'threadprog.c', |
||||||
|
dependencies : threaddep |
||||||
) |
) |
||||||
) |
) |
||||||
|
@ -0,0 +1,40 @@ |
|||||||
|
#if defined _WIN32 |
||||||
|
|
||||||
|
#include<windows.h> |
||||||
|
#include<stdio.h> |
||||||
|
|
||||||
|
DWORD WINAPI thread_func(LPVOID ignored) { |
||||||
|
printf("Printing from a thread.\n"); |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
int main(int argc, char **argv) { |
||||||
|
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<pthread.h> |
||||||
|
#include<stdio.h> |
||||||
|
|
||||||
|
void* main_func(void* ignored) { |
||||||
|
printf("Printing from a thread.\n"); |
||||||
|
return NULL; |
||||||
|
} |
||||||
|
|
||||||
|
int main(int argc, char** argv) { |
||||||
|
pthread_t thread; |
||||||
|
int rc; |
||||||
|
printf("Starting thread.\n"); |
||||||
|
rc = pthread_create(&thread, NULL, main_func, NULL); |
||||||
|
rc = pthread_join(thread, NULL); |
||||||
|
printf("Stopped thread.\n"); |
||||||
|
return rc; |
||||||
|
} |
||||||
|
|
||||||
|
#endif |
Loading…
Reference in new issue