mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-14 01:00:07 +00:00
Make x86-64 pthread_cond_timedwait more robust.
It just happens that __pthread_enable_asynccancel doesn't modify the $rdi register. But this isn't guaranteed. Hence we reload the register after the calls.
This commit is contained in:
parent
e2dca2fea3
commit
515a8908ce
@ -1,3 +1,8 @@
|
||||
2009-07-19 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
|
||||
(__pthread_cond_timedwait): Make more robust.
|
||||
|
||||
2009-07-18 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
|
||||
|
@ -153,6 +153,7 @@ __pthread_cond_timedwait:
|
||||
.LcleanupSTART1:
|
||||
34: callq __pthread_enable_asynccancel
|
||||
movl %eax, (%rsp)
|
||||
movq 8(%rsp), %rdi
|
||||
|
||||
movq %r13, %r10
|
||||
cmpq $-1, dep_mutex(%rdi)
|
||||
@ -456,6 +457,7 @@ __pthread_cond_timedwait:
|
||||
.LcleanupSTART2:
|
||||
4: callq __pthread_enable_asynccancel
|
||||
movl %eax, (%rsp)
|
||||
movq 8(%rsp), %rdi
|
||||
|
||||
leaq 32(%rsp), %r10
|
||||
cmpq $-1, dep_mutex(%rdi)
|
||||
|
Loading…
Reference in New Issue
Block a user