From: Ulrich Drepper Date: Tue, 8 Jul 2003 03:42:27 +0000 (+0000) Subject: (lll_futex_wait, lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On X-Git-Tag: glibc-2.16-ports-before-merge~1319 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dc7d6605c8b7852c3bbcb0fe33e3adb8a983d00a;p=thirdparty%2Fglibc.git (lll_futex_wait, lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success return actual return value from the syscall, not 0. --- diff --git a/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h index e286ef36cbc..cc054f9ef36 100644 --- a/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h +++ b/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h @@ -39,7 +39,7 @@ long int __ret; \ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ (futexp), FUTEX_WAIT, (val), 0); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret: 0; \ + INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret : __ret; \ }) #define lll_futex_timed_wait(futexp, val, timespec) \ @@ -48,7 +48,7 @@ long int __ret; \ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ (futexp), FUTEX_WAIT, (val), (timespec)); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret: 0; \ + INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret : __ret; \ }) #define lll_futex_wake(futexp, nr) \ @@ -57,18 +57,17 @@ long int __ret; \ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ (futexp), FUTEX_WAKE, (nr), 0); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret: 0; \ + INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret : __ret; \ }) #define lll_futex_requeue(futexp, nr_wake, nr_move, mutex) \ ({ \ INTERNAL_SYSCALL_DECL (__err); \ long int __ret; \ - \ __ret = INTERNAL_SYSCALL (futex, __err, 5, \ (futexp), FUTEX_REQUEUE, (nr_wake), (nr_move), \ (mutex)); \ - INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret: 0; \ + INTERNAL_SYSCALL_ERROR_P (__ret, __err)? -__ret : __ret; \ }) /* Set *futex to 1 if it is 0, atomically. Returns the old value */