eclipse-iceoryx / eclipse-iceoryx/iceoryx

Refactor Shared Memory Object Creation

Open
#611 1 comment 0 reactions 0 assignees View on GitHub
refactoring
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.