glibc/sysdeps
Lucas A. M. Magalhaes 6185508101 nptl: Fix __futex_clocklock64 return error check [BZ #26964]
The earlier implementation of this, __lll_clocklock, calls lll_clockwait
that doesn't return the futex syscall error codes.  It always tries again
if that fails.

However in the current implementation, when the futex returns EAGAIN,
__futex_clocklock64 will also return EGAIN, even if the futex is taken.

This patch fixes the EAGAIN issue and also adds a check for EINTR.  As
futex syscall can return EINTR if the thread is interrupted by a signal.
In this case I'm assuming the function should continue trying to lock as
there is no mention to about it on POSIX.  Also add a test for both
scenarios.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2020-12-01 18:26:26 -03:00
..
aarch64 nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
alpha nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
arc nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
arm nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
csky nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
generic elf: Introduce enum opt_format in the ldconfig implementation 2020-11-26 18:26:52 +01:00
gnu string: Fix strerrorname_np return value [BZ #26555] 2020-09-29 13:56:06 -03:00
hppa nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
htl hurd: Remove some remnants of cthreads 2020-11-15 13:16:03 +01:00
hurd hurd: Remove some remnants of cthreads 2020-11-15 13:16:03 +01:00
i386 nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
ia64 nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
ieee754 Remove tls.h inclusion from internal errno.h 2020-11-13 12:59:19 -03:00
m68k nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
mach hurd: Enable using ifunc 2020-11-16 21:15:20 +00:00
microblaze nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
mips nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
nios2 nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
nptl nptl: Fix __futex_clocklock64 return error check [BZ #26964] 2020-12-01 18:26:26 -03:00
posix linux: Move posix dir implementations to Linux 2020-10-16 14:19:23 -03:00
powerpc powerpc64le: ifunc select *f128 routines in multiarch mode 2020-11-30 09:56:14 -06:00
pthread y2038: Convert aio_suspend to support 64 bit time 2020-11-30 14:08:44 +01:00
riscv nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
s390 nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
sh sh: Add sh4 fpu Implies folder 2020-11-27 09:29:35 -03:00
sparc nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00
unix sh: Add sh4 fpu Implies folder 2020-11-27 09:29:35 -03:00
wordsize-32 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wordsize-64 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
x86 x86: Remove UP macro. Define LOCK_PREFIX unconditionally. 2020-11-13 15:20:03 +01:00
x86_64 nptl: Move stack list variables into _rtld_global 2020-11-16 19:33:30 +01:00