Created by: Carrotman42
After 5 seconds of waiting for a thread to acknowledge a received signal, os_thread_suspend now returns false so that the caller can retry.
I have a unit test where there's a small chance that the thread doing detach will send the SUSPEND_SIGNAL to a newly created thread before its dcontext's signal_field
is fully_initialized
; the new thread discards the signal (can_always_delay[SUSPEND_SIGNAL] == true
) and later initializes its signal_field
, but the thread doing detach currently never retries to send the signal. So, this is kind of a workaround for a specific instance of i#26 that results in DR deadlocking on itself.
Issue: #2157