aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-06-27 08:17:46 +0000
committerUlrich Drepper <drepper@redhat.com>2003-06-27 08:17:46 +0000
commit7d7ff54cb9152548227f42e1cf7336447f48ec2a (patch)
treee1ddccb3779dab26b47cd5f78507feefb428c426 /nptl
parent7539c7ecfda06eeae987fc53815523a70938073a (diff)
downloadglibc-7d7ff54cb9152548227f42e1cf7336447f48ec2a.zip
glibc-7d7ff54cb9152548227f42e1cf7336447f48ec2a.tar.gz
glibc-7d7ff54cb9152548227f42e1cf7336447f48ec2a.tar.bz2
Update.
2003-06-27 Ulrich Drepper <drepper@redhat.com> * rt/Makefile (CFLAGS-librt-cancellation.c): Define.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S3
-rw-r--r--nptl/tst-cancel4.c8
3 files changed, 12 insertions, 4 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 21157bc..65cf4ef 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-27 Ulrich Drepper <drepper@redhat.com>
+
+ * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
+ premature returns a bit more.
+
2003-06-26 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
index 2eba326..f09be44 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
@@ -334,8 +334,9 @@ versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,
.type __condvar_tw_cleanup3, @function
__condvar_tw_cleanup3:
- leal wakeup_seq(%edx), %ebx # XXX Is this correct? %edx preserved?
+ movl 40(%esp), %ebx
.LSbl5:
+ jmp __condvar_tw_cleanup
.size __condvar_tw_cleanup3, .-__condvar_tw_cleanup3
.type __condvar_tw_cleanup2, @function
__condvar_tw_cleanup2:
diff --git a/nptl/tst-cancel4.c b/nptl/tst-cancel4.c
index 8b0b735..a8142d9 100644
--- a/nptl/tst-cancel4.c
+++ b/nptl/tst-cancel4.c
@@ -1891,6 +1891,8 @@ tf_msgrcv (void *arg)
}
}
+ ssize_t s;
+
pthread_cleanup_push (cl, NULL);
struct
@@ -1906,13 +1908,13 @@ tf_msgrcv (void *arg)
do
{
errno = 0;
- msgrcv (tempmsg, (struct msgbuf *) &m, 10, randnr, 0);
+ s = msgrcv (tempmsg, (struct msgbuf *) &m, 10, randnr, 0);
}
- while (errno == EIDRM);
+ while (errno == EIDRM || errno == EINTR);
pthread_cleanup_pop (0);
- printf ("%s: msgrcv returned\n", __FUNCTION__);
+ printf ("%s: msgrcv returned %zd with errno = %m\n", __FUNCTION__, s);
exit (1);
}