Lines Matching refs:bar
47 barrier_init(barrier_t *bar, int nthreads) in barrier_init() argument
49 pthread_mutex_init(&bar->bar_lock, NULL); in barrier_init()
50 sema_init(&bar->bar_sem, 0, USYNC_THREAD, NULL); in barrier_init()
52 bar->bar_numin = 0; in barrier_init()
53 bar->bar_nthr = nthreads; in barrier_init()
57 barrier_wait(barrier_t *bar) in barrier_wait() argument
59 pthread_mutex_lock(&bar->bar_lock); in barrier_wait()
61 if (++bar->bar_numin < bar->bar_nthr) { in barrier_wait()
62 pthread_mutex_unlock(&bar->bar_lock); in barrier_wait()
63 sema_wait(&bar->bar_sem); in barrier_wait()
71 bar->bar_numin = 0; in barrier_wait()
72 for (i = 1; i < bar->bar_nthr; i++) in barrier_wait()
73 sema_post(&bar->bar_sem); in barrier_wait()
74 pthread_mutex_unlock(&bar->bar_lock); in barrier_wait()