From 58e5c1cf343330a7e61455260cedb8dfff097127 Mon Sep 17 00:00:00 2001 From: monosans Date: Wed, 16 Jul 2025 17:09:40 +0300 Subject: [PATCH] fix: simplify error handling in event listener tasks --- src/tui.rs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/tui.rs b/src/tui.rs index ff1cc25..968190c 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -62,8 +62,7 @@ pub async fn run( } drop(rx); while let Some(task) = join_set.join_next().await { - task.wrap_err("event listener task panicked or was cancelled")? - .wrap_err("event listener task failed")?; + task.wrap_err("event listener task panicked or was cancelled")?; } Ok(()) } @@ -94,20 +93,18 @@ pub struct AppState { pub proxies_working: HashMap, } -async fn tick_event_listener( - tx: tokio::sync::mpsc::UnboundedSender, -) -> Result<(), tokio::sync::mpsc::error::SendError> { +async fn tick_event_listener(tx: tokio::sync::mpsc::UnboundedSender) { let mut tick = tokio::time::interval(tokio::time::Duration::from_secs_f64(1.0 / FPS)); loop { tokio::select! { biased; () = tx.closed() => { - break Ok(()); + break; }, _ = tick.tick() =>{ if tx.send(Event::Tick).is_err() { - break Ok(()); + break; } } } @@ -116,24 +113,24 @@ async fn tick_event_listener( async fn crossterm_event_listener( tx: tokio::sync::mpsc::UnboundedSender, -) -> Result<(), tokio::sync::mpsc::error::SendError> { +) { let mut reader = crossterm::event::EventStream::new(); loop { tokio::select! { biased; () = tx.closed() => { - break Ok(()); + break; }, maybe = reader.next() => { match maybe { Some(Ok(event)) => { if tx.send(Event::Crossterm(event)).is_err() { - break Ok(()); + break ; } }, Some(Err(_)) => {}, None => { - break Ok(()); + break; } } }