Conversation
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>
Contributor
Author
|
Oops, meant to merge this into 362 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.
addSubscriberAndPublish with named locals and the existing relayExec()
helper, and use folly::getKeepAliveToken for the detached reply
coroutine (consistent with the onEmpty/forwardChanged sites).
control path (unsubscribe/requestUpdate) reaches the forwarder off the
relay exec.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
This change is