spawn: permit using IOBuffer as stdout#52461
Merged
Conversation
2cad7d8 to
1f953d6
Compare
ericphanson
reviewed
Dec 9, 2023
1f953d6 to
c516b7d
Compare
People expect to use this (the docs even almost even suggested it at some point), so it is better to make it work as expected (and better than they can emulate) than to criticize their choices. Also fix a few regressions and handling mistakes in setup_stdios: - #44500 tried to store a Redirectable into a SpawnIO, dropping FileRedirect - CmdRedirect did not allocate a ProcessChain, so it wouldd call setup_stdio then call setup_stdios on the result of that, which is strongly discouraged as setup_stdio(s) should only be called once - BufferStream was missing `check_open` calls before writing, and ignored `Base.reseteof` as a possible means of resuming writing after `closewrite` sends a shutdown message. Currently this fix is disabled because Pkg seems like a bit of a disaster with IO mismanagement. - Add `closewrite` to more methods, and document it. Fixes #39311 Fixes #49234 Closes #49233 Closes #46768
c516b7d to
63059ae
Compare
Member
Author
|
This should avoid the test bug introduced by #52217 (this bug was noticed also in the CI run before merging #52217 (comment) but ignored there) that caused this recent CI run to fail: https://buildkite.com/julialang/julia-master/builds/31117#018c5b9f-5171-48a7-95a8-186282ca9fef |
vtjnash
added a commit
that referenced
this pull request
Dec 14, 2023
IanButterworth
pushed a commit
that referenced
this pull request
Dec 14, 2023
stevengj
reviewed
Dec 28, 2023
| * New function `Docs.hasdoc(module, symbol)` tells whether a name has a docstring ([#52139]). | ||
| * Passing an IOBuffer as a stdout argument for Process spawn now works as | ||
| expected, synchronized with `wait` or `success`, so a `Base.BufferStream` is | ||
| no longer required there for correctness to avoid data-races ([#TBD]). |
Member
There was a problem hiding this comment.
Whoops — "TBD" should have been updated.
Merged
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.
People expect to use this (the docs even almost even suggested it at some point), so it is better to make it work as expected (and better than they can emulate) than to criticize their choices.
Also fix a few regressions and handling mistakes in setup_stdios:
check_opencalls before writing, and ignoredBase.reseteofas a possible means of resuming writing afterclosewritesends a shutdown message. Currently this fix is disabled because Pkg seems like a bit of a disaster with IO mismanagement.closewriteto more methods, and document it.Fixes #39311
Fixes #49234
Closes #49233
Closes #46768