about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-02-20 20:21:20 +0000
committerUlrich Drepper <drepper@redhat.com>2004-02-20 20:21:20 +0000
commit33ab3b66dd6a851aef4e607abe3e973e82c7fe81 (patch)
tree42cfe3e35a2ed506fafe49d416992e7ec8edf140 /nptl
parent6e21902ab82e353c3701583c4ee688c45dbb78d7 (diff)
downloadglibc-33ab3b66dd6a851aef4e607abe3e973e82c7fe81.tar.gz
glibc-33ab3b66dd6a851aef4e607abe3e973e82c7fe81.tar.xz
glibc-33ab3b66dd6a851aef4e607abe3e973e82c7fe81.zip
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/ChangeLog4
-rw-r--r--nptl/DESIGN-barrier.txt5
-rw-r--r--nptl/sysdeps/pthread/pthread_barrier_wait.c14
3 files changed, 10 insertions, 13 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 9a3b463e6b..6c9002aea1 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 754e4712e1..b0fbf14fb1 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 f0f65b05c7..aa5b42d419 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);
     }