Skip to content

relay: address PR #362 review feedback#408

Closed
afrind wants to merge 3 commits into
mainfrom
pr408
Closed

relay: address PR #362 review feedback#408
afrind wants to merge 3 commits into
mainfrom
pr408

Conversation

@afrind

@afrind afrind commented Jun 16, 2026

Copy link
Copy Markdown
Contributor
  • MoqxRelay takes the relay executor via the constructor (owned via
    ownedRelayExec_), removing both setRelayExec overloads. Resolves the
    unsafe-after-start and dangling-owned-exec concerns; MoqxRelayContext
    and the track-filter tests now pass the exec at construction.
  • Replace the inline relay/subscriber-exec ternaries in
    addSubscriberAndPublish with named locals and the existing relayExec()
    helper, and use folly::getKeepAliveToken for the detached reply
    coroutine (consistent with the onEmpty/forwardChanged sites).
  • Comment why the forwarder callback must be cross-exec: the subscriber
    control path (unsubscribe/requestUpdate) reaches the forwarder off the
    relay exec.
  • MoqxRelayContext::relayThreadPool_ -> unique_ptr.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com



This change is Reviewable

afrind and others added 3 commits June 15, 2026 21:05
Adds a use_relay_thread boolean config option (default: true) that
controls whether relay state is isolated on a dedicated executor thread.
Disabling it is intended for baseline performance comparison only.

Also removes the hard error that rejected threads > 1, replacing it
with a targeted check: threads > 1 requires use_relay_thread=true.
This unlocks the config validation only — threads > 1 with
use_relay_thread=true will race on shared relay state until the
following commit wires up the dedicated relay executor.
- MoqxRelay takes the relay executor via the constructor (owned via
  ownedRelayExec_), removing both setRelayExec overloads. Resolves the
  unsafe-after-start and dangling-owned-exec concerns; MoqxRelayContext
  and the track-filter tests now pass the exec at construction.
- Replace the inline relay/subscriber-exec ternaries in
  addSubscriberAndPublish with named locals and the existing relayExec()
  helper, and use folly::getKeepAliveToken for the detached reply
  coroutine (consistent with the onEmpty/forwardChanged sites).
- Comment why the forwarder callback must be cross-exec: the subscriber
  control path (unsubscribe/requestUpdate) reaches the forwarder off the
  relay exec.
- MoqxRelayContext::relayThreadPool_ -> unique_ptr.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@afrind

afrind commented Jun 16, 2026

Copy link
Copy Markdown
Contributor Author

Oops, meant to merge this into 362

@afrind afrind closed this Jun 16, 2026
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