#include #include 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); }