PosixTransport::receive currently retries poll after EINTR with the original timeout. Repeated signals can therefore extend the caller-requested receive timeout.
Track a monotonic deadline, recompute the remaining duration for each retry, and return a timeout once the deadline is exhausted. Add a focused regression test that interrupts poll without weakening the existing timeout behavior.
This was identified while reviewing the immutable netft-cpp v0.1.2 snapshot in netft/ros-netft#9. The fix belongs here first and can be included in ros-netft through a later released core snapshot.
PosixTransport::receive currently retries poll after EINTR with the original timeout. Repeated signals can therefore extend the caller-requested receive timeout.
Track a monotonic deadline, recompute the remaining duration for each retry, and return a timeout once the deadline is exhausted. Add a focused regression test that interrupts poll without weakening the existing timeout behavior.
This was identified while reviewing the immutable netft-cpp v0.1.2 snapshot in netft/ros-netft#9. The fix belongs here first and can be included in ros-netft through a later released core snapshot.