Skip to content

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.)>
@ygoldfeld ygoldfeld self-assigned this Mar 8, 2025
@ygoldfeld ygoldfeld merged commit d551c86 into main Mar 8, 2025
48 checks passed
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.

ipc_shm_arena_lend: Intense concurrent allocation can trip thread-safety bug (assert() fail and/or crash and/or instability).

2 participants