Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Report when shared memory region is mapped to allow faster cleanup #673

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

phil-opp
Copy link
Collaborator

@phil-opp phil-opp commented Oct 4, 2024

The shared memory region can be safely removed by the sender once it's mapped in the receiver. The OS will just delete the file handle associated with the shared memory region, but keep the data alive until it has been unmapped from all address spaces.

By notifying the sender that a message has been mapped to the address space we enable faster cleanup on exit. The sender can safely close all of its shared memory regions once all of its sent messages are at least mapped. So it does not need to wait until all messages have been dropped anymore, which can take considerably longer, especially if the Python GC is involved.

This commit modifies the message format, so we need to bump the version of the dora-message crate to 0.5.0.

This PR leads to a quicker exit of the camera node of #625.

@Hennzau
Copy link
Collaborator

Hennzau commented Oct 9, 2024

Hi! I tried this PR but the camera example still hang on CTRL+C (the plot doesn't exit and I have to do dora destroy then dora up to exit everything). However it worked properly on v0.3.5-fix7

The shared memory region can be safely removed by the sender once it's mapped in the receiver. The OS will just delete the file handle associated with the shared memory region, but keep the data alive until it has been unmapped from all address spaces.

By notifying the sender that a message has been mapped to the address space we enable faster cleanup on exit. The sender can safely close all of its shared memory regions once all of its sent messages are at least mapped. So it does not need to wait until all messages have been _dropped_ anymore, which can take considerably longer, especially if the Python GC is involved.

This commit modifies the message format, so we need to bump the version of the `dora-message` crate to `0.5.0`.
@phil-opp phil-opp force-pushed the report-when-data-is-mapped branch from e16c59f to b73b9ee Compare December 11, 2024 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants