aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-10-14 13:45:54 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-10-14 13:45:54 +0200
commit9bbcbc331b5c36d25fed2ba832e34239c7b008ef (patch)
treeaa2c7ca4633b3bbf159f7737235e7abcde96a7b5
parent2c80b7da78920187d7844afd6ca9bc3e873df079 (diff)
add thread supervision
-rw-r--r--src/main.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index 79a55cb..bc85922 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -25,13 +25,18 @@ fn main() -> Result<()> {
let subnet_id = 10 * i;
let vlan_name = format!("eth0.{}", subnet_id);
- thread::spawn(move || run(vlan_name, subnet_id).unwrap());
+ thread::spawn(move || run_supervised(vlan_name, subnet_id));
}
- run("eth0".into(), 0)?;
+ run_supervised("eth0".into(), 0);
+}
+fn run_supervised(link: String, subnet_id: u8) -> ! {
loop {
- thread::sleep(Duration::MAX);
+ match run(link.clone(), subnet_id) {
+ Ok(_) => {}
+ Err(e) => println!("[warn] error on {}: {}", link, e),
+ }
}
}