htl: Fix sem_wait race between read and gsync_wait
commit289b098c9e21e2805e3835f9b5780235ab14a290
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Thu, 29 Dec 2022 23:40:18 +0000 (30 00:40 +0100)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Thu, 29 Dec 2022 23:41:24 +0000 (30 00:41 +0100)
treede5836a64ca9067d4c6a70da94e715d27705f003
parentc923cd8c496c7f253f327361a65c737233c7ebbd
htl: Fix sem_wait race between read and gsync_wait

If the value changes between sem_wait's read and the gsync_wait call,
the kernel will return KERN_INVALID_ARGUMENT, which we have to interpret
as the value having already changed.

This fixes applications (e.g. libgo) seeing sem_wait erroneously return
KERN_INVALID_ARGUMENT.
sysdeps/htl/sem-timedwait.c