Concurrency primitives, safe memory reclamation mechanisms and non-blocking (including lock-free) data structures designed to aid in the research, design and implementation of high performance concurrent systems developed in C99+.
This results in the syscall failing with EINVAL when deadline is NULL.
FUTEX_WAIT_BITSET (since Linux 2.6.25)
This operation is like FUTEX_WAIT except that val3 is used
to provide a 32-bit bit mask to the kernel. This bit
mask, in which at least one bit must be set, is stored in
the kernel-internal state of the waiter. See the
description of FUTEX_WAKE_BITSET for further details.
I think this may cause confusion if people use the benchmark/validation code as a starting point for their wait/wake callbacks. The callbacks will work but NULL timeouts will result in a busy-wait.
This PR reworks how futex is called in the
ck_ec
tests and benchmarks.Presently, the wait half of the syscall is invoked like so:
This results in the syscall failing with
EINVAL
whendeadline
isNULL
.I think this may cause confusion if people use the benchmark/validation code as a starting point for their
wait
/wake
callbacks. The callbacks will work butNULL
timeouts will result in a busy-wait.Small program demonstrating the behavior