Lines Matching defs:bar
49 barrier_init(barrier_t *bar, int nthreads)
51 pthread_mutex_init(&bar->bar_lock, NULL);
53 sema_init(&bar->bar_sem, 0, USYNC_THREAD, NULL);
55 sem_init(&bar->bar_sem, 0, 0);
58 bar->bar_numin = 0;
59 bar->bar_nthr = nthreads;
63 barrier_wait(barrier_t *bar)
65 pthread_mutex_lock(&bar->bar_lock);
67 if (++bar->bar_numin < bar->bar_nthr) {
68 pthread_mutex_unlock(&bar->bar_lock);
70 sema_wait(&bar->bar_sem);
72 sem_wait(&bar->bar_sem);
81 bar->bar_numin = 0;
82 for (i = 1; i < bar->bar_nthr; i++)
84 sema_post(&bar->bar_sem);
86 sem_post(&bar->bar_sem);
88 pthread_mutex_unlock(&bar->bar_lock);