1
Fork 0

Revert "Use pipes in compiletest"

This reverts commit 2d15b6ef42.

This seems like a likely candidate for causing the recent
lock_and_signal failures. I'll revert it for now to see if it fixes it
and hopefully nail down the problem better.
This commit is contained in:
Eric Holk 2012-07-26 14:11:46 -07:00
parent fec749df16
commit 96c6f57d18
2 changed files with 17 additions and 15 deletions

View file

@ -8,6 +8,11 @@ import task;
import core::result;
import result::{ok, err};
import comm::port;
import comm::chan;
import comm::send;
import comm::recv;
import common::config;
import common::mode_run_pass;
import common::mode_run_fail;

View file

@ -2,8 +2,6 @@ import run::spawn_process;
import io::{writer_util, reader_util};
import libc::{c_int, pid_t};
import pipes::chan;
export run;
#[cfg(target_os = "win32")]
@ -60,30 +58,29 @@ fn run(lib_path: ~str,
writeclose(pipe_in.out, input);
let p = pipes::port_set();
let ch = p.chan();
let p = comm::port();
let ch = comm::chan(p);
do task::spawn_sched(task::single_threaded) {
let errput = readclose(pipe_err.in);
ch.send((2, errput));
comm::send(ch, (2, errput));
}
let ch = p.chan();
do task::spawn_sched(task::single_threaded) {
let output = readclose(pipe_out.in);
ch.send((1, output));
comm::send(ch, (1, output));
}
let status = run::waitpid(pid);
let mut errs = ~"";
let mut outs = ~"";
let mut count = 2;
while count > 0 {
alt p.recv() {
(1, s) {
outs = s;
}
(2, s) {
errs = s;
}
_ { fail }
let stream = comm::recv(p);
alt check stream {
(1, s) {
outs = s;
}
(2, s) {
errs = s;
}
};
count -= 1;
};