Add comment clarifying prop_array_t data type
[eleutheria.git] / pthreads / pthread_create.c
blobb4e20688af32e4028d935015a71ea4ec661c6e5f
1 /* compile with:
2 gcc pthread_create.c -o pthread_create -lpthread -Wall -W -Wextra -ansi -pedantic */
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <pthread.h>
8 #define NUM_THREADS 20
10 /* Function prototypes */
11 void *threadfun(void *arg);
12 void diep(const char *s);
14 int main(void)
16 pthread_t tid[NUM_THREADS];
17 int cnt[NUM_THREADS], i;
19 for (i = 0; i < NUM_THREADS; i++) {
20 cnt[i] = i;
21 printf("Creating thread: %d\n", i);
22 if (pthread_create(&tid[i], NULL, threadfun, (void *)&cnt[i]))
23 diep("pthread_create() error\n");
26 /* Make sure all threads are done */
27 for (i = 0; i < NUM_THREADS; i++)
28 if (pthread_join(tid[i], NULL))
29 diep("pthread_join");
31 return EXIT_SUCCESS;
34 void *threadfun(void *arg)
36 printf("Hello! I am thread: %d\n", *(int *) arg);
37 pthread_exit(NULL);
40 void diep(const char *s)
42 perror(s);
43 exit(EXIT_FAILURE);