Under heavy network load, the echo response to an echo request that was just sent may not immediately be available for reading, with recvmsg(MSG_DONTWAIT) failing with EAGAIN. This leads to occasional false positive "not running" events.
This wraps the recvmsg() within a poll() loop with a short timeout (10 ms) and retries reading the echo response up to 3 times, in case poll() was interrupted by some other event (e.g. EINTR).
Under heavy network load, the echo response to an echo request that was just sent may not immediately be available for reading, with recvmsg(MSG_DONTWAIT) failing with EAGAIN. This leads to occasional false positive "not running" events.
This wraps the recvmsg() within a poll() loop with a short timeout (10 ms) and retries reading the echo response up to 3 times, in case poll() was interrupted by some other event (e.g. EINTR).
Closes #1855