diff options
Diffstat (limited to 'src/libstd/run.rs')
| -rw-r--r-- | src/libstd/run.rs | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/src/libstd/run.rs b/src/libstd/run.rs index 3bc56d2653a..5b3ba1e6f97 100644 --- a/src/libstd/run.rs +++ b/src/libstd/run.rs @@ -21,7 +21,6 @@ use io; use libc::{pid_t, c_int}; use libc; use prelude::*; -use task; /** * A value representing a child process. @@ -221,13 +220,7 @@ impl Process { let ch = SharedChan::new(ch); let ch_clone = ch.clone(); - // FIXME(#910, #8674): right now I/O is incredibly brittle when it comes - // to linked failure, so these tasks must be spawn so they're not - // affected by linked failure. If these are removed, then the - // runtime may never exit because linked failure will cause some - // SchedHandle structures to not get destroyed, meaning that - // there's always an async watcher available. - do task::spawn_unlinked { + do spawn { do io::ignore_io_error { match error.take() { Some(ref mut e) => ch.send((2, e.read_to_end())), @@ -235,7 +228,7 @@ impl Process { } } } - do task::spawn_unlinked { + do spawn { do io::ignore_io_error { match output.take() { Some(ref mut e) => ch_clone.send((1, e.read_to_end())), |
