about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-18 18:56:16 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-18 18:56:16 +0000
commit24a49f38ad4f05aca5d4b55b2bc1ac31347342ce (patch)
tree4ea12aecc7307ff8f68b04002196da07928b0300 /nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
parentd5cb838958b610de0bef12722860030eec964aaf (diff)
downloadglibc-24a49f38ad4f05aca5d4b55b2bc1ac31347342ce.tar.gz
glibc-24a49f38ad4f05aca5d4b55b2bc1ac31347342ce.tar.xz
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/i486/pthread_cond_wait.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S14
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)