Lines Matching refs:barrier
53 int pthread_barrier_init(pthread_barrier_t* barrier, in pthread_barrier_init() argument
56 barrier->count = count; in pthread_barrier_init()
57 pthread_mutex_init(&barrier->mutex, NULL); in pthread_barrier_init()
58 pthread_cond_init(&barrier->cond, NULL); in pthread_barrier_init()
62 int pthread_barrier_wait(pthread_barrier_t* barrier) { in pthread_barrier_wait() argument
64 pthread_mutex_lock(&barrier->mutex); in pthread_barrier_wait()
67 if (--barrier->count == 0) { in pthread_barrier_wait()
69 pthread_cond_broadcast(&barrier->cond); in pthread_barrier_wait()
70 pthread_mutex_unlock(&barrier->mutex); in pthread_barrier_wait()
76 pthread_cond_wait(&barrier->cond, &barrier->mutex); in pthread_barrier_wait()
77 } while (barrier->count > 0); in pthread_barrier_wait()
79 pthread_mutex_unlock(&barrier->mutex); in pthread_barrier_wait()
83 int pthread_barrier_destroy(pthread_barrier_t *barrier) { in pthread_barrier_destroy() argument
84 barrier->count = 0; in pthread_barrier_destroy()
85 pthread_cond_destroy(&barrier->cond); in pthread_barrier_destroy()
86 pthread_mutex_destroy(&barrier->mutex); in pthread_barrier_destroy()