Home | History | Annotate | Download | only in testing

Lines Matching full:barrier

53 int pthread_barrier_init(pthread_barrier_t* barrier,
56 barrier->count = count;
57 pthread_mutex_init(&barrier->mutex, NULL);
58 pthread_cond_init(&barrier->cond, NULL);
62 int pthread_barrier_wait(pthread_barrier_t* barrier) {
64 pthread_mutex_lock(&barrier->mutex);
67 if (--barrier->count == 0) {
68 // First thread to reach the barrier
69 pthread_cond_broadcast(&barrier->cond);
70 pthread_mutex_unlock(&barrier->mutex);
76 pthread_cond_wait(&barrier->cond, &barrier->mutex);
77 } while (barrier->count > 0);
79 pthread_mutex_unlock(&barrier->mutex);
83 int pthread_barrier_destroy(pthread_barrier_t *barrier) {
84 barrier->count = 0;
85 pthread_cond_destroy(&barrier->cond);
86 pthread_mutex_destroy(&barrier->mutex);