1
0
Fork 0
forked from wry/wry

tests: fix ol' forker dumping core in tests

This commit is contained in:
Julian Orth 2022-05-13 19:26:55 +02:00
parent 3bd1813d50
commit 22b7fb2ced
5 changed files with 34 additions and 6 deletions

View file

@ -338,7 +338,7 @@ impl Forker {
let _f1 = ae.spawn(forker.clone().incoming());
let _f2 = ae.spawn(forker.clone().outgoing());
let _ = ring.run();
unreachable!();
std::process::exit(1);
}
async fn outgoing(self: Rc<Self>) {
@ -348,14 +348,23 @@ impl Forker {
for fd in self.fds.borrow_mut().drain(..) {
io.push_fd(fd);
}
io.write_msg(msg).await.unwrap();
if io.write_msg(msg).await.is_err() {
self.ring.stop();
return;
}
}
}
async fn incoming(self: Rc<Self>) {
let mut io = IoIn::new(&self.socket, &self.ring);
loop {
let msg = io.read_msg().await.unwrap();
let msg = match io.read_msg().await {
Ok(m) => m,
_ => {
self.ring.stop();
return;
}
};
self.handle_msg(msg, &mut io);
}
}