Minor tweaks and improvements when recording process events #139
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.
This PR is a followup to the new "process event" format introduced in #138
After merging #138, I found that processes that save large output ended up not writing correctly. I narrowed it down to either a bug or quirk in how
zstd-seekable
works, where it wasn't clear to me how to get it to fully flush its output. This led me to revisit some parts of the process events feature:zstd-seekable
crate tozstd-framed
(a new crate I just published). This also let me remove all the custom zstd types (and tests) from Brioche, since that's now all covered byzstd-framed
CancellationToken
and aTaskTracker
to ensure (some) tasks fully shut down before exiting. For now, only tasks that write process events use this mechanism.ProcessEvent
types to no longer useCow<_>
. Since process events are now written in a different task, this forced all uses to beCow<'static, _>
, so just using owned types instead simplified things.