#include <pthread.h> | |
#include <unistd.h> | |
static const int NTHREADS = 10; | |
static pthread_barrier_t barrier; | |
static void * | |
thread_func (void *p) | |
{ | |
pthread_barrier_wait (&barrier); | |
return NULL; | |
} | |
int | |
main (void) | |
{ | |
alarm (60); | |
pthread_t threads[NTHREADS]; | |
pthread_barrier_init (&barrier, NULL, NTHREADS + 2); | |
for (int i = 0; i < NTHREADS; i++) | |
pthread_create (&threads[i], NULL, thread_func, NULL); | |
pthread_barrier_wait (&barrier); | |
for (int i = 0; i < NTHREADS; i++) | |
pthread_join (threads[i], NULL); | |
} |