diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-03-18 18:56:16 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-18 18:56:16 +0000 |
commit | 24a49f38ad4f05aca5d4b55b2bc1ac31347342ce (patch) | |
tree | 4ea12aecc7307ff8f68b04002196da07928b0300 /nptl/sysdeps/unix/sysv/linux/i386 | |
parent | d5cb838958b610de0bef12722860030eec964aaf (diff) | |
download | glibc-24a49f38ad4f05aca5d4b55b2bc1ac31347342ce.tar glibc-24a49f38ad4f05aca5d4b55b2bc1ac31347342ce.tar.gz glibc-24a49f38ad4f05aca5d4b55b2bc1ac31347342ce.tar.bz2 glibc-24a49f38ad4f05aca5d4b55b2bc1ac31347342ce.zip |
Update.
* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
(pthrad_cond_t): Replace __unused field with __clock.
* sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
waken all waiters in cleanup handler.
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/i386')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S index 68ce35e8d6..c7a4881ed2 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S @@ -70,12 +70,6 @@ __condvar_cleanup: addl $1, woken_seq-wakeup_seq(%ebx) adcl $0, woken_seq-wakeup_seq+4(%ebx) - /* Wake up all waiters to make sure no signal gets lost. */ - movl $FUTEX_WAKE, %ecx - movl $SYS_futex, %eax - movl $0x7fffffff, %edx - ENTER_KERNEL - LOCK subl $1, cond_lock-wakeup_seq(%ebx) je 2f @@ -83,8 +77,14 @@ __condvar_cleanup: leal cond_lock-wakeup_seq(%ebx), %eax call __lll_mutex_unlock_wake + /* Wake up all waiters to make sure no signal gets lost. */ +2: movl $FUTEX_WAKE, %ecx + movl $SYS_futex, %eax + movl $0x7fffffff, %edx + ENTER_KERNEL + /* Lock the mutex unless asynchronous cancellation is in effect. */ -2: testl $2, (%esi) + testl $2, (%esi) jne 3f pushl 8(%esi) |