Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

spawn/IO: supercharge the API #30278

Merged
merged 3 commits into from
Dec 7, 2018
Merged

spawn/IO: supercharge the API #30278

merged 3 commits into from
Dec 7, 2018

Commits on Dec 6, 2018

  1. spawn: supercharge the API

    - Permit IOBuffer as an input/output, and automatically create a Pipe to
    feed to/from it.
    
    - Improved handling for using CmdRedirect on fd >= 3
    
    - Allow any number of stdio handles to be passed to the child
    (including zero), not just precisely 0-2
    
    - Clearer ownership expectations (less code duplication) in `_spawn`
    calls, ensuring we always call `setup_stdio` early and exactly once
    
    - Stop capturing all IO handles in Process.in/.out/.err
    Since usually we only have the child side of the handle at the point
    we were trying to set this, while we want this to be the parent handle.
    Instead, we now handle this at the caller level in the `open` method,
    which has better information and intent given for this.
    (To preserve the old behavior, we also include the old heuristic
    in `run` for setting these handles.)
    
    - Ensure that most of the code won't need to be specialized on every
    (stdin, stdout, stderr) tuple combination that gets used
    
    - Implement `open(::OS_HANDLE)` for taking ownership of a raw `fd` handle,
    and the corresponding constructors `PipeEndpoint(::OS_HANDLE)` and
    `TCP(::OS_HANDLE)` (such as may now be passed via CmdRedirect).
    vtjnash committed Dec 6, 2018
    Configuration menu
    Copy the full SHA
    4cc3e62 View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2018

  1. Apply suggestions from code review [ci skip]

    Co-Authored-By: vtjnash <vtjnash@gmail.com>
    ararslan and vtjnash authored Dec 7, 2018
    Configuration menu
    Copy the full SHA
    dfd3fd6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2aa77df View commit details
    Browse the repository at this point in the history