eclipse-iceoryx / eclipse-iceoryx/iceoryx
Refactor Shared Memory Object Creation
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 492
- Avg merge
- 18h 57m
- Merged PRs (30d)
- 1
Description
## Brief feature description
Both `PoshRuntime` and `ProcessManager` don't follow our main design principles (RAII, clear responsibilty, etc.). Hence, a refactoring is necessary.
## Detailed information
- [x] Rename `ProcessName_t` into `PoshRuntimeName_t`
- [x] Remove `RouDiLock`
- [ ] Create design document
- [ ] Rename `ProcessManager` to `RuntimeManager`?
- [ ] Remove `IOX_DISCARD_RESULT` around `registerProcess/unregisterProcess` in roudi.cpp and inform user (comes from #637)
- [ ] Agree on design
- [ ] Implement design
- [ ] Use `reference_wrapper` for `SegmentUserInformation.m_memoryManager`, [see](https://github.com/eclipse-iceoryx/iceoryx/pull/598#discussion_r599669633)
- [ ] remove the `cxx::not_null` from `cxx::not_null` in `ProcessManger::addProcess` since an application without write access to a data segment would crash RouDi ( have a look at `SegmentManager::getSegmentInformationForUser`)
Contributor guide
Research direction
Start with the checklist and design discussion, then inspect roudi.cpp, ProcessManager::addProcess, SegmentUserInformation.m_memoryManager, and SegmentManager::getSegmentInformationForUser. Establish the design agreement before implementation, including the RuntimeManager and error-handling questions. Done means the agreed design is documented and all remaining refactoring items are implemented and validated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- distributed-systems
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100