Bugfix: get
and eval
subcommands could sometimes omit bytes.
#43
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.
Bytes from the end of content streams could be missing from Operator's output.
I'd somehow gotten it into my head that in
io::Write
,write
+flush
was the same aswrite_all
(i.e. that non-written bytes were held in some internal buffer that got emptied uponflush
). In hindsight this is silly, sinceio::Write
is a trait there's not even anywhere to store such a buffer (individualWrite
impls could work this way in theory, but at least the one forio::StdoutLock
doesn't).I hadn't noticed this problem until now because apparently
write
had been writing the entire buffer at once. Something must have changed in the GitHub Actions runners, though, as the issue was 100% reproducible for a certain sample in #42 and all CI runs since that PR was opened.