html terminal
Diffstat (limited to 'src/server.rs')
-rw-r--r--src/server.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/server.rs b/src/server.rs
index 5596564..218bf84 100644
--- a/src/server.rs
+++ b/src/server.rs
@@ -82,23 +82,23 @@ impl Server {
});
let stdout = state.stdout.clone();
tokio::spawn(async move {
+ let mut process_handle: Option<JoinHandle<()>> = None;
+ let mut backoff = 1u64;
macro_rules! backoff {
- ($backoff:expr) => {
- $backoff <<= 1;
- println!("process died; waiting {}s", $backoff);
- sleep(Duration::from_secs($backoff)).await;
+ () => {
+ backoff <<= 1;
+ sleep(Duration::from_secs(backoff)).await;
continue;
};
}
- let mut process_handle: Option<JoinHandle<()>> = None;
- let mut backoff = 1u64;
loop {
if let Some(h) = process_handle {
let _ = h.await;
process_handle = None;
+ println!("process died; waiting {}s", backoff << 2);
}
let Ok(spawn) = Process::spawn().await else {
- backoff!(backoff);
+ backoff!();
};
process_handle = Some(
spawn
@@ -109,7 +109,7 @@ impl Server {
if backoff == 1 {
continue;
}
- backoff!(backoff);
+ backoff!();
}
});
Bot::spawn(state.stdout.subscribe(), state.stdin.clone()).await;