aboutsummaryrefslogtreecommitdiff
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
parentf6d77b2076c566a082da5b95007ea5786eaf2dc0 (diff)
downloadglibc-3abc82c8ce46447abc38762069beb548a554f382.zip
glibc-3abc82c8ce46447abc38762069beb548a554f382.tar.gz
glibc-3abc82c8ce46447abc38762069beb548a554f382.tar.bz2
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.
-rw-r--r--libidn/ChangeLog5
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/pthread/pthread_cond_wait.c6
3 files changed, 14 insertions, 3 deletions
diff --git a/libidn/ChangeLog b/libidn/ChangeLog
index f5bc21b..5e2f6e1 100644
--- a/libidn/ChangeLog
+++ b/libidn/ChangeLog
@@ -1,3 +1,8 @@
+2004-05-21 Ulrich Drepper <drepper@redhat.com>
+
+ * idna.c (idna_to_unicode_4z4z): Fix test for failed memory allocation.
+ Patch by Simon Josefsson.
+
2004-05-06 Ulrich Drepper <drepper@redhat.com>
* stringprep.c (stringprep): Free memory if allocation failed.
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 592f73b..5f1f61c 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 a05060a..128f5a2 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;
}