• Home
  • Raw
  • Download

Lines Matching full:bar

15    gcc-4.3-20071012/libgomp/config/posix/bar.c, which is
45 gomp_barrier_init (gomp_barrier_t *bar, unsigned count) in gomp_barrier_init() argument
47 pthread_mutex_init (&bar->mutex1, NULL); in gomp_barrier_init()
48 pthread_mutex_init (&bar->mutex2, NULL); in gomp_barrier_init()
49 bar->sem1 = my_sem_init ("sem1", 0, 0); in gomp_barrier_init()
50 bar->sem2 = my_sem_init ("sem2", 0, 0); in gomp_barrier_init()
51 bar->xxx = my_sem_init ("xxx", 0, 0); in gomp_barrier_init()
52 bar->total = count; in gomp_barrier_init()
53 bar->arrived = 0; in gomp_barrier_init()
57 gomp_barrier_destroy (gomp_barrier_t *bar) in gomp_barrier_destroy() argument
60 pthread_mutex_lock (&bar->mutex1); in gomp_barrier_destroy()
61 pthread_mutex_unlock (&bar->mutex1); in gomp_barrier_destroy()
63 pthread_mutex_destroy (&bar->mutex1); in gomp_barrier_destroy()
64 pthread_mutex_destroy (&bar->mutex2); in gomp_barrier_destroy()
65 my_sem_destroy(bar->sem1); in gomp_barrier_destroy()
66 my_sem_destroy(bar->sem2); in gomp_barrier_destroy()
67 my_sem_destroy(bar->xxx); in gomp_barrier_destroy()
71 gomp_barrier_reinit (gomp_barrier_t *bar, unsigned count) in gomp_barrier_reinit() argument
73 pthread_mutex_lock (&bar->mutex1); in gomp_barrier_reinit()
74 bar->total = count; in gomp_barrier_reinit()
75 pthread_mutex_unlock (&bar->mutex1); in gomp_barrier_reinit()
79 gomp_barrier_wait (gomp_barrier_t *bar) in gomp_barrier_wait() argument
82 pthread_mutex_lock (&bar->mutex1); in gomp_barrier_wait()
84 ++bar->arrived; in gomp_barrier_wait()
86 if (bar->arrived == bar->total) in gomp_barrier_wait()
88 bar->arrived--; in gomp_barrier_wait()
89 n = bar->arrived; in gomp_barrier_wait()
94 my_sem_wait(bar->xxx); // acquire an obvious dependency from in gomp_barrier_wait()
101 my_sem_post (bar->sem1); // 1 up in gomp_barrier_wait()
104 my_sem_wait (bar->sem2); // 2 down in gomp_barrier_wait()
106 pthread_mutex_unlock (&bar->mutex1); in gomp_barrier_wait()
117 pthread_mutex_unlock (&bar->mutex1); in gomp_barrier_wait()
118 my_sem_post(bar->xxx); in gomp_barrier_wait()
120 my_sem_wait (bar->sem1); // 1 down in gomp_barrier_wait()
122 pthread_mutex_lock (&bar->mutex2); in gomp_barrier_wait()
123 n = --bar->arrived; /* XXX see below */ in gomp_barrier_wait()
124 pthread_mutex_unlock (&bar->mutex2); in gomp_barrier_wait()
127 my_sem_post (bar->sem2); // 2 up in gomp_barrier_wait()
133 understand that bar->arrived is protected by mutex1 whilst threads
137 static gomp_barrier_t bar; variable
162 gomp_barrier_wait( &bar ); in child()
171 gomp_barrier_wait( &bar ); in child()
182 gomp_barrier_wait( &bar ); in child()
193 gomp_barrier_init( &bar, 4 ); in main()
205 gomp_barrier_destroy( &bar ); in main()