Unify execute_command across platforms #193
Merged
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.
Fixes #178 by providing an empty stdin, which leads to the command not blocking on input.
To achieve this, I removed the
#[cfg(all(unix))]
implementation ofexecute_command
in favor of the simpler#[cfg(not(unix))]
implementation (which is now used unconditionally). This implementation usesCommand::output
, which by default captures stdout and stderr and provides an empty stdin.Incidentally, this also fixes an (unreported) bug in the removed
execute_command
implementation: when the command output grew larger than the size of a pipe, a deadlock occured:I'm not entirely sure why we even had the removed
execute_command
to begin with, as using theCommand
's built-in output capture features seem to work just fine on Unix configurations.