-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
improved rcl_wait in the area of timeout computation and spurious wakeups #1146
Conversation
Signed-off-by: Janosch Machowinski <j.machowinski@nospam.org>
Signed-off-by: Janosch Machowinski <j.machowinski@nospam.org>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm. i think this should work for failed cases https://ci.ros2.org/job/ci_linux/20668/testReport/.
@jmachowinski thank you very much for your effort including weekend!
I will start the CI. (I will exclude ros2/rclcpp#2469, to verify this specific PR 1st.)
Added special handling for timers with a clock that has time override enabled. For these timer we should not compute a timeout, as the waitset is waken up by the associated guard condition. Before this change, the waitset could wait up, because of an expected ready timer, that was acutally not ready, as the time update to the ROS_TIME had not yet arrived. Signed-off-by: Janosch Machowinski <j.machowinski@nospam.org>
fixed the linting problem |
10bb656
to
3191f3a
Compare
Full CI: (ros2/rclcpp#2469 is already merged) |
https://ci.ros2.org/job/ci_windows/21389/testReport/junit/rclpy/flake8/A006____rclpy_node_py_989_20_/ is known issue, and unrelated to this PR. |
This fixes the issues reported by #1142.
Fixed a bug that a ready override timer would not wake up the wait set.
Adopted the test to catch this condition.
@clalancette, @mjcarroll , @fujitatomoya , @wjwwood