diff options
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S index 3677ab3bf9..57b5b58186 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S @@ -30,7 +30,7 @@ #define SYS_gettimeofday __NR_gettimeofday #define SYS_futex 240 -#define FUTEX_WAKE 1 +#define FUTEX_WAIT 0 #if VALUE != 0 @@ -108,10 +108,15 @@ sem_timedwait: movl %eax, 8(%esp) movl 28(%esp), %ebx /* Load semaphore address. */ - xorl %ecx, %ecx +#if FUTEX_WAIT == 0 + movl PRIVATE(%ebx), %ecx +#else + movl $FUTEX_WAIT, %ecx + orl PRIVATE(%ebx), %ecx +#endif movl %esp, %esi - movl $SYS_futex, %eax xorl %edx, %edx + movl $SYS_futex, %eax ENTER_KERNEL movl %eax, %esi |