about summary refs log tree commit diff
path: root/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-11 23:26:35 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-11 23:26:35 +0000
commit32a589b1ea1365c8651b0692d0350403fde7b6ff (patch)
tree77b94275bcf321370496c19d29267e8c66a8606d /nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
parent3e976b962a84255b70bcf6d9751a9a35d3e987ab (diff)
downloadglibc-32a589b1ea1365c8651b0692d0350403fde7b6ff.tar.gz
glibc-32a589b1ea1365c8651b0692d0350403fde7b6ff.tar.xz
glibc-32a589b1ea1365c8651b0692d0350403fde7b6ff.zip
Update.
	* cancellation.c (__pthread_enable_asynccancel_2): New function.
	* pthreadP.h: Declare __pthread_enable_asynccancel_2.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
	instead of __pthread_enable_asynccancel.
	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
	(__pthread_cond_wait): Likewise.
	* sysdeps/pthread/pthread_cond_timedwait.c
	(__pthread_cond_timedwait): Likewise.
	* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S5
1 files changed, 3 insertions, 2 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
index c15566fdf0..193cc081e1 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
@@ -153,9 +153,10 @@ __pthread_cond_wait:
 #endif
 	jne	3f
 
-4:	callq	__pthread_enable_asynccancel
-	movq	%rax, (%rsp)
+4:	movq	%rsp, %edi
+	callq	__pthread_enable_asynccancel_2
 
+	movq	8(%rsp), %rdi
 	xorq	%r10, %r10
 	movq	%r12, %rdx
 	addq	$wakeup_seq-cond_lock, %rdi