Skip to content

Commit 803a99a

Browse files
authored
Rollup merge of #146794 - joboet:reorganize-pipe, r=Mark-Simulacrum
std: reorganize pipe implementations Currently, there are two distinct types called `AnonPipe` in `std`: * The one used to implement `io::pipe` (in `sys::anonymous_pipe`) * The one used to implement `Stdin`/`Stdout`/`Stderr` (in `sys::pal::pipe`) On Windows, these actually have different semantics, as one of the handles returned by the `sys::pal::pipe` version is opened for asynchronous operation in order to support `read2`, whereas the `sys::anonymous_pipe` version does not do so. Thus the naming is extremely confusing. To fix this, this PR renames the `sys::anonymous_pipe` version of `AnonPipe` to simply `Pipe`, whereas the `sys::pal::pipe` version is now called `ChildPipe`. Additionally, * `sys::anonymous_pipe` is now also just called `sys::pipe`. * On Windows, `sys::pal::pipe` has been moved to `sys::process` and is now called `sys::process::child_pipe`. * On non-Windows platforms, pipe creation is now exclusively handled by `sys::pipe` and `ChildPipe` is defined as a type alias to `Pipe` within `sys::process`. And lastly, the `read2` function (originally in `sys::pal::pipe`) is now called `read_output` and defined by `sys::process`, as (at least on Windows) it is only usable with `ChildPipe`. Includes rust-lang/rust#146639 for convenience.
2 parents ed079a5 + c2685da commit 803a99a

File tree

0 file changed

+0
-0
lines changed

    0 file changed

    +0
    -0
    lines changed

    0 commit comments

    Comments
     (0)