diff options
Diffstat (limited to 'misc/cgo/test/cthread_unix.c')
-rw-r--r-- | misc/cgo/test/cthread_unix.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/misc/cgo/test/cthread_unix.c b/misc/cgo/test/cthread_unix.c index 247d636d06..13623254a9 100644 --- a/misc/cgo/test/cthread_unix.c +++ b/misc/cgo/test/cthread_unix.c @@ -32,3 +32,27 @@ doAdd(int max, int nthread) for(i=0; i<nthread; i++) pthread_join(thread_id[i], 0); } + +static void* +goDummyCallbackThread(void* p) +{ + int i, max; + + max = *(int*)p; + for(i=0; i<max; i++) + goDummy(); + return NULL; +} + +int +callGoInCThread(int max) +{ + pthread_t thread; + + if (pthread_create(&thread, NULL, goDummyCallbackThread, (void*)(&max)) != 0) + return -1; + if (pthread_join(thread, NULL) != 0) + return -1; + + return max; +} |