mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 23:30:07 +00:00
Update.
2004-03-01 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S (__pthread_cond_timedwait): Optimize wakeup test. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S (__pthread_cond_wait): Likewise. * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise. * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
This commit is contained in:
parent
b7fe377cba
commit
cff08c8110
@ -1,3 +1,13 @@
|
|||||||
|
2004-03-01 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
|
||||||
|
(__pthread_cond_timedwait): Optimize wakeup test.
|
||||||
|
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
|
||||||
|
(__pthread_cond_wait): Likewise.
|
||||||
|
* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
|
||||||
|
* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
|
||||||
|
Likewise.
|
||||||
|
|
||||||
2004-02-29 Ulrich Drepper <drepper@redhat.com>
|
2004-02-29 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
|
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
|
||||||
|
@ -65,7 +65,7 @@ cond_timedwait(cv, mutex, timeout):
|
|||||||
|
|
||||||
val = cv->wakeup_seq;
|
val = cv->wakeup_seq;
|
||||||
|
|
||||||
if (val > seq && cv->woken_seq < val) {
|
if (val != seq && cv->woken_seq != val) {
|
||||||
ret = 0;
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -159,7 +159,7 @@ __pthread_cond_timedwait (cond, mutex, abstime)
|
|||||||
|
|
||||||
/* Check whether we are eligible for wakeup. */
|
/* Check whether we are eligible for wakeup. */
|
||||||
val = cond->__data.__wakeup_seq;
|
val = cond->__data.__wakeup_seq;
|
||||||
if (val > seq && cond->__data.__woken_seq < val)
|
if (val != seq && cond->__data.__woken_seq != val)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Not woken yet. Maybe the time expired? */
|
/* Not woken yet. Maybe the time expired? */
|
||||||
|
@ -143,7 +143,7 @@ __pthread_cond_wait (cond, mutex)
|
|||||||
/* Check whether we are eligible for wakeup. */
|
/* Check whether we are eligible for wakeup. */
|
||||||
val = cond->__data.__wakeup_seq;
|
val = cond->__data.__wakeup_seq;
|
||||||
}
|
}
|
||||||
while (! (val > seq && cond->__data.__woken_seq < val));
|
while (val == seq || cond->__data.__woken_seq == val);
|
||||||
|
|
||||||
/* Another thread woken up. */
|
/* Another thread woken up. */
|
||||||
++cond->__data.__woken_seq;
|
++cond->__data.__woken_seq;
|
||||||
|
@ -190,16 +190,14 @@ __pthread_cond_timedwait:
|
|||||||
movl wakeup_seq+4(%ebx), %edx
|
movl wakeup_seq+4(%ebx), %edx
|
||||||
|
|
||||||
cmpl 16(%esp), %edx
|
cmpl 16(%esp), %edx
|
||||||
ja 7f
|
jne 7f
|
||||||
jb 15f
|
|
||||||
cmpl 12(%esp), %edi
|
cmpl 12(%esp), %edi
|
||||||
jbe 15f
|
je 15f
|
||||||
|
|
||||||
7: cmpl %ecx, %edx
|
7: cmpl %ecx, %edx
|
||||||
ja 9f
|
jne 9f
|
||||||
jb 15f
|
|
||||||
cmp %eax, %edi
|
cmp %eax, %edi
|
||||||
ja 9f
|
jne 9f
|
||||||
|
|
||||||
15: cmpl $-ETIMEDOUT, %esi
|
15: cmpl $-ETIMEDOUT, %esi
|
||||||
jne 8b
|
jne 8b
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||||
|
|
||||||
@ -133,16 +133,14 @@ __pthread_cond_wait:
|
|||||||
movl wakeup_seq+4(%ebx), %edx
|
movl wakeup_seq+4(%ebx), %edx
|
||||||
|
|
||||||
cmpl 8(%esp), %edx
|
cmpl 8(%esp), %edx
|
||||||
ja 7f
|
jne 7f
|
||||||
jb 8b
|
|
||||||
cmpl 4(%esp), %edi
|
cmpl 4(%esp), %edi
|
||||||
jbe 8b
|
je 8b
|
||||||
|
|
||||||
7: cmpl %ecx, %edx
|
7: cmpl %ecx, %edx
|
||||||
ja 9f
|
jne 9f
|
||||||
jb 8b
|
|
||||||
cmp %eax, %edi
|
cmp %eax, %edi
|
||||||
jna 8b
|
je 8b
|
||||||
|
|
||||||
9: addl $1, woken_seq(%ebx)
|
9: addl $1, woken_seq(%ebx)
|
||||||
adcl $0, woken_seq+4(%ebx)
|
adcl $0, woken_seq+4(%ebx)
|
||||||
|
Loading…
Reference in New Issue
Block a user