aboutsummaryrefslogtreecommitdiffstats
path: root/src/run/mod.rs
diff options
context:
space:
mode:
authorJonas Maier <>2026-03-07 10:06:19 +0100
committerJonas Maier <>2026-03-07 10:06:19 +0100
commit4b34aecec66c9123399f14a8f75ee8d0aff47a44 (patch)
treea9b6743b15dac0a91baddb4e0e3af9e83c17b9cc /src/run/mod.rs
parent65ccf9fa1f247ed2ba1dc94583051cae9989944d (diff)
downloadpish-4b34aecec66c9123399f14a8f75ee8d0aff47a44.tar.gz
some warnings gone
Diffstat (limited to 'src/run/mod.rs')
-rw-r--r--src/run/mod.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/run/mod.rs b/src/run/mod.rs
index 3803936..2d137c6 100644
--- a/src/run/mod.rs
+++ b/src/run/mod.rs
@@ -166,8 +166,16 @@ impl Executor {
} else {
let mut code = 0;
for jh in threads {
- // TODO do not ignore panics
- let _ = jh.join();
+ match jh.join() {
+ Ok(Ok(())) => (),
+ Ok(Err(e)) => {
+ match e {
+ BuiltinError::IO(_) => code = -1,
+ BuiltinError::Exit(c) => code = c,
+ }
+ }
+ Err(_) => code = 127,
+ }
}
for child in children.iter_mut() {
match child.wait() {
@@ -258,7 +266,7 @@ pub fn run(se: Arc<Mutex<Session>>, cmd: Vec<u8>) {
}
#[derive(Debug)]
-enum BuiltinError {
+pub enum BuiltinError {
IO(std::io::Error),
Exit(i32),
}