diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-10-14 13:45:54 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-10-14 13:45:54 +0200 |
commit | 9bbcbc331b5c36d25fed2ba832e34239c7b008ef (patch) | |
tree | aa2c7ca4633b3bbf159f7737235e7abcde96a7b5 | |
parent | 2c80b7da78920187d7844afd6ca9bc3e873df079 (diff) |
add thread supervision
-rw-r--r-- | src/main.rs | 11 |
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), + } } } |