aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-05-21 16:19:16 +0000
committerUlrich Drepper <drepper@redhat.com>2004-05-21 16:19:16 +0000
commit3abc82c8ce46447abc38762069beb548a554f382 (patch)
treeabfeafe9373aa8b996f27167ea9b08b9d650731f /nptl
parentf6d77b2076c566a082da5b95007ea5786eaf2dc0 (diff)
downloadglibc-3abc82c8ce46447abc38762069beb548a554f382.tar
glibc-3abc82c8ce46447abc38762069beb548a554f382.tar.gz
glibc-3abc82c8ce46447abc38762069beb548a554f382.tar.bz2
glibc-3abc82c8ce46447abc38762069beb548a554f382.zip
Update.
2004-05-21 Ulrich Drepper <drepper@redhat.com> * idna.c (idna_to_unicode_4z4z): Fix test for failed memory allocation. Patch by Simon Josefsson.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/pthread/pthread_cond_wait.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 592f73b095..5f1f61c088 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,9 @@
+2004-05-21 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
+ __broadcast_seq with bc_seq after acquiring internal lock instead of
+ before it.
+
2004-05-18 Jakub Jelinek <jakub@redhat.com>
* Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
diff --git a/nptl/sysdeps/pthread/pthread_cond_wait.c b/nptl/sysdeps/pthread/pthread_cond_wait.c
index a05060a107..128f5a2d99 100644
--- a/nptl/sysdeps/pthread/pthread_cond_wait.c
+++ b/nptl/sysdeps/pthread/pthread_cond_wait.c
@@ -143,13 +143,13 @@ __pthread_cond_wait (cond, mutex)
/* Disable asynchronous cancellation. */
__pthread_disable_asynccancel (cbuffer.oldtype);
+ /* We are going to look at shared data again, so get the lock. */
+ lll_mutex_lock (cond->__data.__lock);
+
/* If a broadcast happened, we are done. */
if (cbuffer.bc_seq != cond->__data.__broadcast_seq)
goto bc_out;
- /* We are going to look at shared data again, so get the lock. */
- lll_mutex_lock (cond->__data.__lock);
-
/* Check whether we are eligible for wakeup. */
val = cond->__data.__wakeup_seq;
}