Skip to content

Commit 53198b8

Browse files
authored
Merge pull request #248 from dora-rs/shmem-read-only
Map shared memory region as read-only in receiver
2 parents 8401d86 + aee0512 commit 53198b8

File tree

8 files changed

+15
-12
lines changed

8 files changed

+15
-12
lines changed

Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/rust/node/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ flume = "0.10.14"
2424
uuid = { version = "1.1.2", features = ["v4"] }
2525
capnp = "0.14.11"
2626
bincode = "1.3.3"
27-
shared_memory = "0.12.0"
27+
shared_memory_extended = "0.13.0"
2828
dora-tracing = { workspace = true, optional = true }
2929
arrow = "35.0.0"
3030
futures = "0.3.28"

apis/rust/node/src/event_stream/event.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use dora_core::{
55
message::Metadata,
66
};
77
use eyre::Context;
8-
use shared_memory::{Shmem, ShmemConf};
8+
use shared_memory_extended::{Shmem, ShmemConf};
99

1010
#[derive(Debug)]
1111
#[non_exhaustive]
@@ -78,6 +78,7 @@ impl MappedInputData {
7878
let memory = Box::new(
7979
ShmemConf::new()
8080
.os_id(shared_memory_id)
81+
.writable(false)
8182
.open()
8283
.wrap_err("failed to map shared memory input")?,
8384
);

apis/rust/node/src/node/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use dora_core::{
88
message::{uhlc, Metadata, MetadataParameters},
99
};
1010
use eyre::{bail, WrapErr};
11-
use shared_memory::{Shmem, ShmemConf};
11+
use shared_memory_extended::{Shmem, ShmemConf};
1212
use std::{
1313
collections::{HashMap, VecDeque},
1414
ops::{Deref, DerefMut},
@@ -231,6 +231,7 @@ impl DoraNode {
231231
None => ShmemHandle(Box::new(
232232
ShmemConf::new()
233233
.size(data_len)
234+
.writable(true)
234235
.create()
235236
.wrap_err("failed to allocate shared memory")?,
236237
)),

examples/python-operator-dataflow/plot.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def on_input(
5858
dora_input["value"]
5959
.to_numpy()
6060
.reshape((CAMERA_HEIGHT, CAMERA_WIDTH, 3))
61+
.copy() # copy the image because we want to modify it below
6162
)
6263
self.image = frame
6364

libraries/shared-memory-server/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ license.workspace = true
1111
[dependencies]
1212
eyre = "0.6.8"
1313
serde = { version = "1.0.152", features = ["derive"] }
14-
shared_memory = "0.12.0"
14+
shared_memory_extended = "0.13.0"
1515
# TODO use upstream release once https://github.com/elast0ny/raw_sync-rs/pull/29 is merged
1616
# Current fix, use personally pushed `raw_sync_2` version.
1717
raw_sync_2 = "0.1.5"

libraries/shared-memory-server/src/channel.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use eyre::{eyre, Context};
22
use raw_sync_2::events::{Event, EventImpl, EventInit, EventState};
33
use serde::{Deserialize, Serialize};
4-
use shared_memory::Shmem;
4+
use shared_memory_extended::Shmem;
55
use std::{
66
mem, slice,
77
sync::atomic::{AtomicBool, AtomicU64},

libraries/shared-memory-server/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use self::channel::ShmemChannel;
22
use eyre::{eyre, Context};
33
use serde::{Deserialize, Serialize};
4-
pub use shared_memory::{Shmem, ShmemConf};
4+
pub use shared_memory_extended::{Shmem, ShmemConf};
55
use std::marker::PhantomData;
66
use std::time::Duration;
77

0 commit comments

Comments
 (0)