Comments (3)
There is already a workaround for this available by using
let mut sample = publisher.loan_uninit()?;
let sample = unsafe {
sample
.payload_mut()
.as_mut_ptr()
.write(LargdDataType::default());
sample.assume_init()
};
It should work reliably with release builds but might fail with debug builds.
We need a long term solution but I think a build-in Rust solution would be ideal. Maybe this is something we could engage in the Rust community and try to speed it up?
from iceoryx2.
@elBoberido, we could try, but I doubt we can realize this in the following months.
I can't entirely agree with calling this reliable when this algorithm depends on a release optimization. For whatever reason, this could be turned off in some corner cases, or the compiler may not be able to realize that it can perform this optimization.
And what if the user, who is using iceoryx, integrates this into unit tests - then it will cause problems again. With this we would also enforce our users to always build in release mode, also during development, which would cause additional problems.
So my take on this is that we require a quick and comfortable solution and we can use our solution as a discussion basis for the Rust community to come to a build-in Rust solution. What do you think?
from iceoryx2.
@elfenpiff I think there are more pressing issues but it's up to you.
from iceoryx2.
Related Issues (20)
- Simplify multidimensional generic tests
- Race Condition in `UniqueSystemId`
- Improve error codes on failed service creation
- Adjust timing in bitset tests
- A failing pub/sub connection is not an error HOT 1
- Refine relocatable types
- Add tests with `LifetimeTracker` for `Queue` and `Vec`
- Support untyped services
- Introduce `atomic` type for iceoryx
- Example for dynamic sized types
- Use performance clock mode by default
- Port 'SignalMechanism' from 'Semaphore' to POSIX 'ConditionVariable' where possible
- Create C language binding
- Increase test coverage
- Large FixedSizeVec overflows stack HOT 12
- Increase min version to rust 1.75
- Remove clippy surpression for assigning clones
- Go language binding HOT 2
- Is there any description about the architect difference between iceoryx and iceoryx2,how iceory2 works without roudi HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iceoryx2.