Skip to content

Commit 0e2f78a

Browse files
authored
make SHM enabled by default in Config (#1312)
* make SHM enabled by default in Config * [skip ci] add SHM description in the config file * review fixes: assert -> unwrap
1 parent 5b628ac commit 0e2f78a

File tree

13 files changed

+21
-68
lines changed

13 files changed

+21
-68
lines changed

DEFAULT_CONFIG.json5

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,14 @@
421421
server_name_verification: null,
422422
},
423423
},
424-
/// Shared memory configuration
424+
/// Shared memory configuration.
425+
/// NOTE: shared memory can be used only if zenoh is compiled with "shared-memory" feature, otherwise
426+
/// settings in this section have no effect.
425427
shared_memory: {
426-
enabled: false,
428+
/// A probing procedure for shared memory is performed upon session opening. To enable zenoh to operate
429+
/// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
430+
/// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
431+
enabled: true,
427432
},
428433
auth: {
429434
/// The configuration of authentication.

commons/zenoh-config/src/defaults.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ impl Default for LinkRxConf {
247247
#[allow(clippy::derivable_impls)]
248248
impl Default for ShmConf {
249249
fn default() -> Self {
250-
Self { enabled: false }
250+
Self { enabled: true }
251251
}
252252
}
253253

examples/examples/z_get_shm.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,7 @@ async fn main() {
3131
// initiate logging
3232
zenoh::try_init_log_from_env();
3333

34-
let (mut config, selector, mut payload, target, timeout) = parse_args();
35-
36-
// A probing procedure for shared memory is performed upon session opening. To enable `z_pub_shm` to operate
37-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
38-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
39-
config.transport.shared_memory.set_enabled(true).unwrap();
34+
let (config, selector, mut payload, target, timeout) = parse_args();
4035

4136
println!("Opening session...");
4237
let session = zenoh::open(config).await.unwrap();

examples/examples/z_ping_shm.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,7 @@ fn main() {
2828
// Initiate logging
2929
zenoh::try_init_log_from_env();
3030

31-
let (mut config, warmup, size, n) = parse_args();
32-
33-
// A probing procedure for shared memory is performed upon session opening. To enable `z_ping_shm` to operate
34-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
35-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
36-
config.transport.shared_memory.set_enabled(true).unwrap();
31+
let (config, warmup, size, n) = parse_args();
3732

3833
let session = zenoh::open(config).wait().unwrap();
3934

examples/examples/z_pong.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,7 @@ fn main() {
1919
// initiate logging
2020
zenoh::try_init_log_from_env();
2121

22-
let (mut config, express) = parse_args();
23-
24-
// A probing procedure for shared memory is performed upon session opening. To enable `z_ping_shm` to operate
25-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
26-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
27-
config.transport.shared_memory.set_enabled(true).unwrap();
22+
let (config, express) = parse_args();
2823

2924
let session = zenoh::open(config).wait().unwrap().into_arc();
3025

examples/examples/z_pub_shm.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,7 @@ async fn main() -> Result<(), ZError> {
2929
// Initiate logging
3030
zenoh::try_init_log_from_env();
3131

32-
let (mut config, path, payload) = parse_args();
33-
34-
// A probing procedure for shared memory is performed upon session opening. To enable `z_pub_shm` to operate
35-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
36-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
37-
config.transport.shared_memory.set_enabled(true).unwrap();
32+
let (config, path, payload) = parse_args();
3833

3934
println!("Opening session...");
4035
let session = zenoh::open(config).await.unwrap();

examples/examples/z_pub_shm_thr.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,7 @@ use zenoh_examples::CommonArgs;
2525
async fn main() {
2626
// initiate logging
2727
zenoh::try_init_log_from_env();
28-
let (mut config, sm_size, size) = parse_args();
29-
30-
// A probing procedure for shared memory is performed upon session opening. To enable `z_pub_shm_thr` to operate
31-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
32-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
33-
config.transport.shared_memory.set_enabled(true).unwrap();
28+
let (config, sm_size, size) = parse_args();
3429

3530
let z = zenoh::open(config).await.unwrap();
3631

examples/examples/z_queryable.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,7 @@ async fn main() {
2020
// initiate logging
2121
zenoh::try_init_log_from_env();
2222

23-
let (mut config, key_expr, payload, complete) = parse_args();
24-
25-
// A probing procedure for shared memory is performed upon session opening. To enable `z_get_shm` to operate
26-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
27-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
28-
config.transport.shared_memory.set_enabled(true).unwrap();
23+
let (config, key_expr, payload, complete) = parse_args();
2924

3025
println!("Opening session...");
3126
let session = zenoh::open(config).await.unwrap();

examples/examples/z_queryable_shm.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,7 @@ async fn main() {
3131
// initiate logging
3232
zenoh::try_init_log_from_env();
3333

34-
let (mut config, key_expr, payload, complete) = parse_args();
35-
36-
// A probing procedure for shared memory is performed upon session opening. To enable `z_get_shm` to operate
37-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
38-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
39-
config.transport.shared_memory.set_enabled(true).unwrap();
34+
let (config, key_expr, payload, complete) = parse_args();
4035

4136
println!("Opening session...");
4237
let session = zenoh::open(config).await.unwrap();

examples/examples/z_sub.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,7 @@ async fn main() {
2020
// Initiate logging
2121
zenoh::try_init_log_from_env();
2222

23-
let (mut config, key_expr) = parse_args();
24-
25-
// A probing procedure for shared memory is performed upon session opening. To enable `z_pub_shm` to operate
26-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
27-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
28-
config.transport.shared_memory.set_enabled(true).unwrap();
23+
let (config, key_expr) = parse_args();
2924

3025
println!("Opening session...");
3126
let session = zenoh::open(config).await.unwrap();

examples/examples/z_sub_shm.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,7 @@ async fn main() {
2222
// Initiate logging
2323
zenoh::try_init_log_from_env();
2424

25-
let (mut config, key_expr) = parse_args();
26-
27-
// A probing procedure for shared memory is performed upon session opening. To enable `z_pub_shm` to operate
28-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
29-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
30-
config.transport.shared_memory.set_enabled(true).unwrap();
25+
let (config, key_expr) = parse_args();
3126

3227
println!("Opening session...");
3328
let session = zenoh::open(config).await.unwrap();

examples/examples/z_sub_thr.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,7 @@ fn main() {
7171
// initiate logging
7272
zenoh::try_init_log_from_env();
7373

74-
let (mut config, m, n) = parse_args();
75-
76-
// A probing procedure for shared memory is performed upon session opening. To enable `z_pub_shm_thr` to operate
77-
// over shared memory (and to not fallback on network mode), shared memory needs to be enabled also on the
78-
// subscriber side. By doing so, the probing procedure will succeed and shared memory will operate as expected.
79-
config.transport.shared_memory.set_enabled(true).unwrap();
74+
let (config, m, n) = parse_args();
8075

8176
let session = zenoh::open(config).wait().unwrap();
8277

zenoh/tests/shm.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ use zenoh::{
2626
pubsub::Reliability,
2727
qos::CongestionControl,
2828
shm::{
29-
BlockOn, GarbageCollect, PosixShmProviderBackend, ShmProviderBuilder, POSIX_PROTOCOL_ID,
29+
zshm, BlockOn, GarbageCollect, PosixShmProviderBackend, ShmProviderBuilder,
30+
POSIX_PROTOCOL_ID,
3031
},
3132
Session,
3233
};
@@ -52,7 +53,6 @@ async fn open_session_unicast(endpoints: &[&str]) -> (Session, Session) {
5253
)
5354
.unwrap();
5455
config.scouting.multicast.set_enabled(Some(false)).unwrap();
55-
config.transport.shared_memory.set_enabled(true).unwrap();
5656
println!("[ ][01a] Opening peer01 session: {:?}", endpoints);
5757
let peer01 = ztimeout!(zenoh::open(config)).unwrap();
5858

@@ -68,7 +68,6 @@ async fn open_session_unicast(endpoints: &[&str]) -> (Session, Session) {
6868
)
6969
.unwrap();
7070
config.scouting.multicast.set_enabled(Some(false)).unwrap();
71-
config.transport.shared_memory.set_enabled(true).unwrap();
7271
println!("[ ][02a] Opening peer02 session: {:?}", endpoints);
7372
let peer02 = ztimeout!(zenoh::open(config)).unwrap();
7473

@@ -84,7 +83,6 @@ async fn open_session_multicast(endpoint01: &str, endpoint02: &str) -> (Session,
8483
.set(vec![endpoint01.parse().unwrap()])
8584
.unwrap();
8685
config.scouting.multicast.set_enabled(Some(true)).unwrap();
87-
config.transport.shared_memory.set_enabled(true).unwrap();
8886
println!("[ ][01a] Opening peer01 session: {}", endpoint01);
8987
let peer01 = ztimeout!(zenoh::open(config)).unwrap();
9088

@@ -95,7 +93,6 @@ async fn open_session_multicast(endpoint01: &str, endpoint02: &str) -> (Session,
9593
.set(vec![endpoint02.parse().unwrap()])
9694
.unwrap();
9795
config.scouting.multicast.set_enabled(Some(true)).unwrap();
98-
config.transport.shared_memory.set_enabled(true).unwrap();
9996
println!("[ ][02a] Opening peer02 session: {}", endpoint02);
10097
let peer02 = ztimeout!(zenoh::open(config)).unwrap();
10198

@@ -128,6 +125,7 @@ async fn test_session_pubsub(peer01: &Session, peer02: &Session, reliability: Re
128125
.declare_subscriber(&key_expr)
129126
.callback(move |sample| {
130127
assert_eq!(sample.payload().len(), size);
128+
let _ = sample.payload().deserialize::<&zshm>().unwrap();
131129
c_msgs.fetch_add(1, Ordering::Relaxed);
132130
}))
133131
.unwrap();

0 commit comments

Comments
 (0)