From 3197d415e0aa4b7caf33f79ddfa9e281de98ffbd Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Thu, 28 May 2026 11:12:40 +0200 Subject: [PATCH] timeout handles (#966) * timeout handles * more --- src/retroachievements.rs | 9 +++++++-- src/ui/usb.rs | 8 ++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/retroachievements.rs b/src/retroachievements.rs index 8778b2a0..3f6a59f1 100644 --- a/src/retroachievements.rs +++ b/src/retroachievements.rs @@ -181,11 +181,16 @@ pub async fn unload_game( discord_watch_tx: Option>, discord_handle: Option>, ) { - if let Some(discord_handle) = discord_handle + if let Some(mut discord_handle) = discord_handle && let Some(discord_watch_tx) = discord_watch_tx { let _ = discord_watch_tx.send(()); - discord_handle.await.unwrap(); + if tokio::time::timeout(std::time::Duration::from_secs(1), &mut discord_handle) + .await + .is_err() + { + discord_handle.abort(); + } } unsafe { ra_unload_game() }; } diff --git a/src/ui/usb.rs b/src/ui/usb.rs index 1e0a14f2..9546935b 100644 --- a/src/ui/usb.rs +++ b/src/ui/usb.rs @@ -179,8 +179,12 @@ pub async fn close( usb_handle: Option>, ) { let _ = shutdown_tx.send(()); - if let Some(handle) = usb_handle { - handle.await.unwrap(); + if let Some(mut handle) = usb_handle + && tokio::time::timeout(std::time::Duration::from_secs(1), &mut handle) + .await + .is_err() + { + handle.abort(); } }