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', |
||||
executable('threadprog', 'threadprog.cpp', |
||||
dependencies : dependency('threads') |
||||
threaddep = 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