Skip to content

Commit 55071ab

Browse files
committed
Return Arc from the create_node function to match other create_X functions (#294)
* Fine-grained locks. Made create_subscription, create_service, create_client not take a mutable self * Return an Arc from rclrs::create_node to match other create_X functions * Update spin* to take an Arc * Fix clippy warning
1 parent dee354c commit 55071ab

File tree

6 files changed

+14
-13
lines changed

6 files changed

+14
-13
lines changed

rclrs/message_demo/src/message_demo.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use std::convert::TryInto;
22
use std::env;
3+
use std::sync::Arc;
34

45
use anyhow::{Error, Result};
56
use rosidl_runtime_rs::{seq, BoundedSequence, Message, Sequence};
@@ -132,7 +133,7 @@ fn demonstrate_pubsub() -> Result<(), Error> {
132133
println!("================== Interoperability demo ==================");
133134
// Demonstrate interoperability between idiomatic and RMW-native message types
134135
let context = rclrs::Context::new(env::args())?;
135-
let mut node = rclrs::create_node(&context, "message_demo")?;
136+
let node = rclrs::create_node(&context, "message_demo")?;
136137

137138
let idiomatic_publisher = node.create_publisher::<rclrs_example_msgs::msg::VariousTypes>(
138139
"topic",
@@ -159,10 +160,10 @@ fn demonstrate_pubsub() -> Result<(), Error> {
159160
)?;
160161
println!("Sending idiomatic message.");
161162
idiomatic_publisher.publish(rclrs_example_msgs::msg::VariousTypes::default())?;
162-
rclrs::spin_once(&node, None)?;
163+
rclrs::spin_once(Arc::clone(&node), None)?;
163164
println!("Sending RMW-native message.");
164165
direct_publisher.publish(rclrs_example_msgs::msg::rmw::VariousTypes::default())?;
165-
rclrs::spin_once(&node, None)?;
166+
rclrs::spin_once(Arc::clone(&node), None)?;
166167

167168
Ok(())
168169
}

rclrs/minimal_client_service/src/minimal_client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use anyhow::{Error, Result};
55
fn main() -> Result<(), Error> {
66
let context = rclrs::Context::new(env::args())?;
77

8-
let mut node = rclrs::create_node(&context, "minimal_client")?;
8+
let node = rclrs::create_node(&context, "minimal_client")?;
99

1010
let client = node.create_client::<example_interfaces::srv::AddTwoInts>("add_two_ints")?;
1111

@@ -28,5 +28,5 @@ fn main() -> Result<(), Error> {
2828
std::thread::sleep(std::time::Duration::from_millis(500));
2929

3030
println!("Waiting for response");
31-
rclrs::spin(&node).map_err(|err| err.into())
31+
rclrs::spin(node).map_err(|err| err.into())
3232
}

rclrs/minimal_client_service/src/minimal_client_async.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use anyhow::{Error, Result};
66
async fn main() -> Result<(), Error> {
77
let context = rclrs::Context::new(env::args())?;
88

9-
let mut node = rclrs::create_node(&context, "minimal_client")?;
9+
let node = rclrs::create_node(&context, "minimal_client")?;
1010

1111
let client = node.create_client::<example_interfaces::srv::AddTwoInts>("add_two_ints")?;
1212

@@ -20,7 +20,7 @@ async fn main() -> Result<(), Error> {
2020

2121
println!("Waiting for response");
2222

23-
let rclrs_spin = tokio::task::spawn_blocking(move || rclrs::spin(&node));
23+
let rclrs_spin = tokio::task::spawn_blocking(move || rclrs::spin(node));
2424

2525
let response = future.await?;
2626
println!(

rclrs/minimal_client_service/src/minimal_service.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ fn handle_service(
1515
fn main() -> Result<(), Error> {
1616
let context = rclrs::Context::new(env::args())?;
1717

18-
let mut node = rclrs::create_node(&context, "minimal_service")?;
18+
let node = rclrs::create_node(&context, "minimal_service")?;
1919

2020
let _server = node
2121
.create_service::<example_interfaces::srv::AddTwoInts, _>("add_two_ints", handle_service)?;
2222

2323
println!("Starting server");
24-
rclrs::spin(&node).map_err(|err| err.into())
24+
rclrs::spin(node).map_err(|err| err.into())
2525
}

rclrs/minimal_pub_sub/src/minimal_subscriber.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use anyhow::{Error, Result};
55
fn main() -> Result<(), Error> {
66
let context = rclrs::Context::new(env::args())?;
77

8-
let mut node = rclrs::create_node(&context, "minimal_subscriber")?;
8+
let node = rclrs::create_node(&context, "minimal_subscriber")?;
99

1010
let mut num_messages: usize = 0;
1111

@@ -19,5 +19,5 @@ fn main() -> Result<(), Error> {
1919
},
2020
)?;
2121

22-
rclrs::spin(&node).map_err(|err| err.into())
22+
rclrs::spin(node).map_err(|err| err.into())
2323
}

rclrs/minimal_pub_sub/src/zero_copy_subscriber.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use anyhow::{Error, Result};
55
fn main() -> Result<(), Error> {
66
let context = rclrs::Context::new(env::args())?;
77

8-
let mut node = rclrs::create_node(&context, "minimal_subscriber")?;
8+
let node = rclrs::create_node(&context, "minimal_subscriber")?;
99

1010
let mut num_messages: usize = 0;
1111

@@ -19,5 +19,5 @@ fn main() -> Result<(), Error> {
1919
},
2020
)?;
2121

22-
rclrs::spin(&node).map_err(|err| err.into())
22+
rclrs::spin(node).map_err(|err| err.into())
2323
}

0 commit comments

Comments
 (0)