diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-02-20 20:21:20 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-02-20 20:21:20 +0000 |
commit | 33ab3b66dd6a851aef4e607abe3e973e82c7fe81 (patch) | |
tree | 42cfe3e35a2ed506fafe49d416992e7ec8edf140 /nptl | |
parent | 6e21902ab82e353c3701583c4ee688c45dbb78d7 (diff) | |
download | glibc-33ab3b66dd6a851aef4e607abe3e973e82c7fe81.zip glibc-33ab3b66dd6a851aef4e607abe3e973e82c7fe81.tar.gz glibc-33ab3b66dd6a851aef4e607abe3e973e82c7fe81.tar.bz2 |
Update.
* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Add ulps for the
2003-11-27 atan2 test.
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 4 | ||||
-rw-r--r-- | nptl/DESIGN-barrier.txt | 5 | ||||
-rw-r--r-- | nptl/sysdeps/pthread/pthread_barrier_wait.c | 14 |
3 files changed, 10 insertions, 13 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 9a3b463..6c9002a 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,7 @@ +2004-02-20 Jakub Jelinek <jakub@redhat.com> + + * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define. + 2004-02-19 Andreas Schwab <schwab@suse.de> * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait): diff --git a/nptl/DESIGN-barrier.txt b/nptl/DESIGN-barrier.txt index 754e471..b0fbf14 100644 --- a/nptl/DESIGN-barrier.txt +++ b/nptl/DESIGN-barrier.txt @@ -31,12 +31,9 @@ pthread_barrier_wait(barrier_t *barrier) result = BARRIER_SERIAL_THREAD; } else { event = barrier->curr_event; + lll_unlock(barrier->lock); do { - lll_unlock(barrier->lock); - futex_wait(&barrier->curr_event, event) - - lll_lock(barrier->lock); } while (event == barrier->curr_event); } diff --git a/nptl/sysdeps/pthread/pthread_barrier_wait.c b/nptl/sysdeps/pthread/pthread_barrier_wait.c index f0f65b0..aa5b42d 100644 --- a/nptl/sysdeps/pthread/pthread_barrier_wait.c +++ b/nptl/sysdeps/pthread/pthread_barrier_wait.c @@ -55,17 +55,13 @@ pthread_barrier_wait (barrier) /* The number of the event we are waiting for. The barrier's event number must be bumped before we continue. */ unsigned int event = ibarrier->curr_event; - do - { - /* Before suspending, make the barrier available to others. */ - lll_unlock (ibarrier->lock); - /* Wait for the event counter of the barrier to change. */ - lll_futex_wait (&ibarrier->curr_event, event); + /* Before suspending, make the barrier available to others. */ + lll_unlock (ibarrier->lock); - /* We are going to access shared data. */ - lll_lock (ibarrier->lock); - } + /* Wait for the event counter of the barrier to change. */ + do + lll_futex_wait (&ibarrier->curr_event, event); while (event == ibarrier->curr_event); } |