Skip to content

Run the Help comm on the R thread#1284

Open
lionel- wants to merge 1 commit into
task/comm-ownershipfrom
task/sync-help-comm
Open

Run the Help comm on the R thread#1284
lionel- wants to merge 1 commit into
task/comm-ownershipfrom
task/sync-help-comm

Conversation

@lionel-

@lionel- lionel- commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Branched from #1283
Progress towards #689 and #691

See #1075 for context: we're moving comms out of their own threads to run on the R thread, to simplify the concurrency structure of Ark and remove the risk of concurrent R evaluations which are UB (although these are now also tackled under a different angle, see #1222).

The help comm no longer has its own thread and event loop. Instead it implements CommHandler and its handlers get run on the R thread.

  • Like the UI comm, it's a pinned comm that is accessible via methods on Console, so it uses the patterns established in Simplify ownership of the list of comms #1283.

  • browseURL() emits a Help event to the frontend. Now that the message is emitted from the R thread, instead of the old comm thread, the message is guaranteed to be emitted within the busy/idle window of the execute-request of the browseURL() call. This sort of simplification of message ordering is exactly what enables accurate and stable protocol-level tests.

  • New kernel-level integration test for the Help comm (progress towards Migrate existing comm tests to protocol-level tests #1074).

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.

1 participant