glibc/sysdeps
DJ Delorie 088136aa02 i386: Use pthread_barrier for synchronization on tst-bz21269
So I was able to reproduce the hangs in the original source, and debug
it, and fix it.  In doing so, I realized that we can't use anything
complex to trigger the thread because that "anything" might also cause
the expected segfault and force everything out of sync again.

Here's what I ended up with, and it doesn't seem to hang where the
original one hung quite often (in a tight while..end loop).  The key
changes are:

1. Calls to futex are error checked, with retries, to ensure that the
   futexes are actually doing what they're supposed to be doing.  In the
   original code, nearly every futex call returned an error.

2. The main loop has checks for whether the thread ran or not, and
   "unlocks" the thread if it didn't (this is how the original source
   hangs).

Note: the usleep() is not for timing purposes, but just to give the
kernel an excuse to run the other thread at that time.  The test will
not hang without it, but is more likely to test the right bugfix
if the usleep() is present.
2023-05-16 15:09:18 -04:00
..
aarch64 aarch64: More configure checks for libmvec 2023-05-05 11:34:44 +01:00
alpha alpha: Remove strncmp optimization 2023-03-02 16:41:43 -03:00
arc ARC:fpu: add extra capability check before use of sqrt and fma builtins 2023-02-17 16:17:58 -03:00
arm Update arm libm-tests-ulps 2023-03-30 10:50:50 -03:00
csky C-SKY: Strip hard float abi from hard float feature. 2023-02-07 16:34:24 +08:00
generic elf: Stop including tls.h in ldsodefs.h 2023-04-10 23:26:28 +02:00
gnu hurd 64bit: Fix struct msqid_ds and shmid_ds fields 2023-05-01 15:07:51 +02:00
hppa hppa: Fix 'concurrency' typo in comment 2023-05-05 10:12:39 +01:00
htl hurd 64bit: Fix pthread_t/thread_t type to long 2023-05-01 15:05:09 +02:00
hurd Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
i386 math: Remove the error handling wrapper from fmod and fmodf 2023-04-03 16:45:27 -03:00
ia64 ia64: Regenerate ulps 2023-01-24 11:21:38 -05:00
ieee754 Added Redirects to longdouble error functions [BZ #29033] 2023-05-10 13:59:48 -05:00
loongarch LoongArch: Add get_rounding_mode. 2023-03-13 09:20:42 +08:00
m68k math: Remove the error handling wrapper from fmod and fmodf 2023-04-03 16:45:27 -03:00
mach hurd: Fix computing user stack pointer 2023-05-16 16:09:02 +02:00
microblaze Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mips Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
nios2 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
nptl hurd 64bit: Add missing libanl 2023-05-01 13:36:14 +02:00
or1k Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
posix system: Add "--" after "-c" for sh (BZ #28519) 2023-03-28 10:12:30 -03:00
powerpc Added Redirects to longdouble error functions [BZ #29033] 2023-05-10 13:59:48 -05:00
pthread nptl: Reformat Makefile. 2023-05-10 13:15:13 -04:00
riscv Revert "riscv: Resolve symbols directly for symbols with STO_RISCV_VARIANT_CC." 2023-05-07 14:16:03 +02:00
s390 Remove --enable-tunables configure option 2023-03-29 14:33:06 -03:00
sh sh: Add string-fzb.h 2023-02-06 16:19:35 -03:00
sparc Remove --enable-tunables configure option 2023-03-29 14:33:06 -03:00
unix i386: Use pthread_barrier for synchronization on tst-bz21269 2023-05-16 15:09:18 -04:00
wordsize-32 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
wordsize-64 hurd: Fix tst-writev test 2023-05-01 13:01:30 +02:00
x86 <sys/platform/x86.h>: Add PREFETCHI support 2023-04-05 14:46:10 -07:00
x86_64 Enable libmvec support for AArch64 2023-05-03 12:09:49 +01:00