pthread_barrier_t
extern int pthread_barrier_init(pthread_barrier_t *barrier,
extern int pthread_barrier_destroy(pthread_barrier_t *barrier);
extern int pthread_barrier_wait(pthread_barrier_t *barrier);
pthread_barrier_destroy(pthread_barrier_t* barrier)
pthread_barrier_init(pthread_barrier_t* barrier,
barrier_ensure_none_exiting(pthread_barrier_t* barrier)
pthread_barrier_wait(pthread_barrier_t* barrier)
pthread_barrier_t mybarrier;