Skip to content
New issue

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

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

Already on GitHub? # to your account

ipc::transport::struc::Channel API now formally allows concurrent calls of its APIs on the same object including .sync_request(). .sync_request()s will execute fully serially, even if a blocking-wait is necessary; but any other call during a .sync_request() blocking-wait shall execute immediately. / ipc::session::shm::arena_lend::jemalloc::Shm_session internal improvement (no effect on functionality). #141

Merged
merged 3 commits into from
Mar 8, 2025

Conversation

ygoldfeld
Copy link
Contributor

fixes Flow-IPC/ipc_shm_arena_lend#61

API notes

  • Behavior (not "breaking" per se) changes:
    • ipc::transport::struc::Channel methods now all safe for mutually concurrent execution on the same object (was only the case for certain accessors and .create_msg() previously).
      • During an X.sync_request() blocking-wait, all (non-blocking) methods on X shall execute immediately.
      • However another X.sync_request() shall be blocked until the blocking-wait finishes.

Impl notes

  • Impl: No need to explicitly synchronize the internal-channel .sync_request() calls, as the Channel API now guarantees this itself.

To code reviewer

Forgoing code review, because submodule PRs already reviewed.

…now formally allows concurrent calls of its APIs on the same object including `.sync_request()`. `.sync_request()`s will execute fully serially, even if a blocking-wait is necessary; but any other call during a `.sync_request()` blocking-wait shall execute immediately.> <ipc_sal: `ipc::session::shm::arena_lend::jemalloc::Shm_session` internal improvement (no effect on functionality). (Impl: No need to explicitly synchronize the internal-channel `.sync_request()` calls, as the `Channel` API now guarantees this itself.)>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
1 participant