Skip to content

Commit

Permalink
Fix a segfault when re-using wait set
Browse files Browse the repository at this point in the history
  • Loading branch information
nnmm committed Oct 11, 2022
1 parent 4956c31 commit 1bbb622
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion rclrs/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ pub use wait::*;
///
/// [1]: crate::RclReturnCode
pub fn spin_once(node: &Node, timeout: Option<Duration>) -> Result<(), RclrsError> {
let mut wait_set = WaitSet::new_for_node(node)?;
let wait_set = WaitSet::new_for_node(node)?;
let ready_entities = wait_set.wait(timeout)?;

for ready_subscription in ready_entities.subscriptions {
Expand Down
2 changes: 1 addition & 1 deletion rclrs/src/wait.rs
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ impl WaitSet {
/// This list is not comprehensive, since further errors may occur in the `rmw` or `rcl` layers.
///
/// [1]: std::time::Duration::ZERO
pub fn wait(&mut self, timeout: Option<Duration>) -> Result<ReadyEntities, RclrsError> {
pub fn wait(mut self, timeout: Option<Duration>) -> Result<ReadyEntities, RclrsError> {
let timeout_ns = match timeout.map(|d| d.as_nanos()) {
None => -1,
Some(ns) if ns <= i64::MAX as u128 => ns as i64,
Expand Down

0 comments on commit 1bbb622

Please sign in to comment.