Reduce dependence on sleep duration for futex_requeue_pi_signal_restart

Detect if the initial signal was handled prior to the requeue call. If
not, re-issue the signal to ensure we test that case. This tolerates the
scenario where the waiter didn't block on f1 after the signal before the
requeue call is issued. Join the waiter after issueing the second signal
rather than sleep and then unlock. This avoids the issue where the
kernel doesn't start processing the cause for the waiter's wakeup until
after the pi lock has been released (and then gives the lock to the
waiter rather than returning EWOULDBLOCK as we intend it to).

Signed-off-by: Darren Hart <>
1 file changed
tree: 5473b39f50babd5664114a0837947346bfaaa8ab
  1. .gitignore
  2. Makefile
  4. functional/
  5. include/
  6. performance/
  8. stress/