release: 0.14.239 - #240
Merged
Merged
Conversation
All twelve published packages share one version, as always. First release since #237, so the bump really is only the twelve Version elements: IoxideRuntime.Version is generated from ioxide.csproj now, and the README's blockquote literal is gone in favour of the nuget badge that was already there. Nothing else in the tree states the number. Carries #239 (recv buffers a reader or stream still holds are reclaimed at teardown, on both TCP and QUIC), #238 (the PipeReader contract under test) and #237 itself. E2E 194, Unit 46, Http 44, Tls 142, Chaos 47, File 4.
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.
All twelve published packages to
0.14.239.First release since #237, so the bump is genuinely only the twelve
<Version>elements —IoxideRuntime.Versionis generated fromioxide.csprojand the README's blockquote literal is gone, replaced by the nuget badge that was already at the top. Nothing else in the tree states the number, and the version test confirms the generated constant followed without being touched.What this release carries
#239 — recv buffers a reader or stream still holds are reclaimed at teardown.
TryGetItemis a dequeue, so anything aTcpConnectionPipeReaderorTcpConnectionStreampulled out was invisible toDrainRecvand came back only if the caller completed it — which nothing obliged them to do. Measured before the fix: with a 16-slot group, 16 of 64 connections served and then the server stopped receiving. Mirrored onto QUIC through the same interface, where the items are pooled arrays rather than ring buffers so it is pool hygiene rather than exhaustion. Also givesTcpConnectionStreamtheDisposeit never had, which is what the two SslStream samples were already calling.#238 — the PipeReader contract under test:
examinedparks the next read instead of respinning it, a partial consume mid-segment leaves the rest readable, and buffers return as consumption passes them.#237 —
IoxideRuntime.Versiongenerated from the csproj, no reflection, andGenerateDocumentationFileturned on so the compiler finally parses the doc comments. That found six stale crefs on its first run.Plus the comment pass that went with #239: 71 files, net ~195 lines, and a handful of comments that had become actively wrong — a warning stranded on the wrong method, a
// not neededon a line that is needed, references to nghttp3 from the pure-C# h3 stack.Note for consumers
TcpOptions.IdleTimeoutMsandSendTimeoutMshave defaulted to 60s since #236 in the previous release. A connection that goes quiet in both directions for a minute is now closed. That is right for HTTP keep-alive and wrong for an idle websocket with a longer ping interval — those listeners wantIdleTimeoutMsraised past the ping interval, or 0.E2E 194, Unit 46, Http 44, Tls 142, Chaos 47, File 4.