c11threads
annotate test.c @ 0:056c9db89e79
initial commit
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 24 Sep 2012 12:32:42 +0300 |
parents | |
children |
rev | line source |
---|---|
nuclear@0 | 1 #include <stdio.h> |
nuclear@0 | 2 #include "c11threads.h" |
nuclear@0 | 3 |
nuclear@0 | 4 void tfunc(void *arg); |
nuclear@0 | 5 |
nuclear@0 | 6 int main(void) |
nuclear@0 | 7 { |
nuclear@0 | 8 int i; |
nuclear@0 | 9 thrd_t threads[4]; |
nuclear@0 | 10 |
nuclear@0 | 11 for(i=0; i<4; i++) { |
nuclear@0 | 12 thrd_create(threads + i, tfunc, (void*)(long)i); |
nuclear@0 | 13 } |
nuclear@0 | 14 |
nuclear@0 | 15 for(i=0; i<4; i++) { |
nuclear@0 | 16 thrd_join(threads[i], 0); |
nuclear@0 | 17 } |
nuclear@0 | 18 |
nuclear@0 | 19 return 0; |
nuclear@0 | 20 } |
nuclear@0 | 21 |
nuclear@0 | 22 void tfunc(void *arg) |
nuclear@0 | 23 { |
nuclear@0 | 24 int num = (long)arg; |
nuclear@0 | 25 xtime dur; |
nuclear@0 | 26 |
nuclear@0 | 27 printf("hello from thread %d\n", num); |
nuclear@0 | 28 |
nuclear@0 | 29 dur.sec = 4; |
nuclear@0 | 30 dur.nsec = 0; |
nuclear@0 | 31 thrd_sleep(&dur); |
nuclear@0 | 32 |
nuclear@0 | 33 printf("thread %d done\n", num); |
nuclear@0 | 34 } |