credits
[rofl0r-thread_wrapper.git] / test.c
blob4eb69b86a87c2723b959cb047720cfc24c601421
1 /*
2 gcc -Wall -Wextra test.c -g -lpthread
3 */
5 #include "thread_wrapper.h"
6 #include <stdio.h>
9 #define KB(x) (x * 1024)
11 /* we want to call this func from a thread. */
12 int worker_func(int x, void* y, int z, void* a) {
13 return z;
16 THREAD_WRAPPER(int, worker_func, 4, (int x, void* y, int z, void* a), (x, y, z, a));
18 int main() {
19 void* child;
20 int result;
21 const char* errmsg;
22 if((errmsg = THREAD_LAUNCH(KB(128), child, worker_func, 4, (0, NULL, 1, (void*) 0xdeadbeef)))) goto pt_err;
23 if((errmsg = THREAD_WAIT(&result, child, worker_func))) goto pt_err;
25 printf("workerfunc returned %d\n", result);
27 return 0;
28 pt_err:
29 perror(errmsg);
30 return 1;