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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why exactly is this correct? A safety comment here would be great to have for someone stumbling upon this without having prior knowledge of the API and WASI spec
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, but note that the implementations of
AsFd
for UNIX don't have such comments either. Nonetheless, added as a suggestion.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a little tricky. WASI itself doesn't make such a guarantees (Unix doesn't either, for that matter). It's efffectively Rust's std that makes this guarantee/requirement, and for its part, its own API doesn't provide a way to close stdin/stdout/stderr without using
unsafe
. @joshtriplett's added comments look ok for now, though eventually we should add public documentation about this.