PERFORCE change 67998 for review
David Xu
davidxu at FreeBSD.org
Fri Dec 31 07:12:34 PST 2004
http://perforce.freebsd.org/chv.cgi?CH=67998
Change 67998 by davidxu at davidxu_tiger on 2004/12/31 15:12:07
follow changes made in header file.
Affected files ...
.. //depot/projects/davidxu_thread/src/lib/libthread/thread/thr_barrier.c#2 edit
Differences ...
==== //depot/projects/davidxu_thread/src/lib/libthread/thread/thr_barrier.c#2 (text+ko) ====
@@ -81,10 +81,10 @@
return (ret);
}
- bar->b_waiters = 0;
- bar->b_count = count;
- bar->b_generation = 0;
- *barrier = bar;
+ bar->b_waiters = 0;
+ bar->b_count = count;
+ bar->b_cycle = 0;
+ *barrier = bar;
return (0);
}
@@ -92,7 +92,7 @@
int
_pthread_barrier_wait(pthread_barrier_t *barrier)
{
- int ret, gen;
+ int ret, cycle;
pthread_barrier_t bar;
if (barrier == NULL || *barrier == NULL)
@@ -104,18 +104,18 @@
if (++bar->b_waiters == bar->b_count) {
/* Current thread is lastest thread */
- bar->b_generation++;
+ bar->b_cycle++;
bar->b_waiters = 0;
ret = _pthread_cond_broadcast(&bar->b_cond);
if (ret == 0)
ret = PTHREAD_BARRIER_SERIAL_THREAD;
} else {
- gen = bar->b_generation;
+ cycle = bar->b_cycle;
do {
ret = _pthread_cond_wait(
&bar->b_cond, &bar->b_lock);
- /* test generation to avoid bogus wakeup */
- } while (ret == 0 && gen == bar->b_generation);
+ /* test cycle to avoid bogus wakeup */
+ } while (ret == 0 && cycle == bar->b_cycle);
}
_pthread_mutex_unlock(&bar->b_lock);
return (ret);
More information about the p4-projects
mailing list