fix: harden SV pacing estimator and isolate unrelated traffic - #50
Conversation
|
Final validation and review-follow-up evidence:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 09453e8cd9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (intervalTicks >= minimumAccepted && intervalTicks <= maximumAccepted) | ||
| { | ||
| NominalIntervalTicks = (long)Math.Round( | ||
| (NominalIntervalTicks * 0.9) + (intervalTicks * 0.1)); |
There was a problem hiding this comment.
Stop moderate lateness from ratcheting the SV interval
When pacing is active and one send is moderately late—for example, 300 ticks against a 250-tick nominal—this branch accepts the observation and raises the nominal to 255. Because PaceSampledValuesAsync subsequently enforces at least that new nominal between commits, normal 250-tick caller traffic cannot produce a shorter observation to restore the rate; recurring scheduler or injection delays below the 1.5× cutoff can therefore ratchet an SV stream progressively slower. Require consistent independent evidence before updating an active nominal rather than feeding individual paced intervals back into it.
AGENTS.md reference: AGENTS.md:L173-L178
Useful? React with 👍 / 👎.
Summary
Follow-up to PR #49 addressing both review findings before the transport is treated as complete.
Stable interval acquisition
Independent traffic paths
SendPacketcritical section;Tests
Adds coverage for:
Frame encoding,
smpCnt, quality, timestamps, VLAN, APPID and capture behavior remain unchanged.