From 3d2df64ffe49a306ba4699a595c5da7c05338de3 Mon Sep 17 00:00:00 2001 From: Jacob Date: Tue, 12 May 2026 23:37:08 -0400 Subject: [PATCH] fix: scope the `vcs_watcher` borrow to possibly fix deadlock --- src/command/join.rs | 2 +- src/command/leave.rs | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/command/join.rs b/src/command/join.rs index 279ac78..dcdd0a2 100644 --- a/src/command/join.rs +++ b/src/command/join.rs @@ -234,7 +234,7 @@ impl EventHandler for Handler { #[tracing::instrument(skip(state))] pub async fn handle(state: State, interaction: Interaction) { let guild_and_voice_channel_id_res = - get_guild_and_voice_channel_id(&interaction, &state.vcs_watcher.borrow()); + { get_guild_and_voice_channel_id(&interaction, &state.vcs_watcher.borrow()) }; let (guild_id, voice_channel_id) = match guild_and_voice_channel_id_res { Ok((guild_id, voice_channel_id)) => (guild_id, voice_channel_id), Err(error) => { diff --git a/src/command/leave.rs b/src/command/leave.rs index 7561df6..8c2fe08 100644 --- a/src/command/leave.rs +++ b/src/command/leave.rs @@ -80,11 +80,13 @@ fn get_guild_and_vc_error_to_embed(error: GetGuildAndVoiceChannelIdError) -> Emb #[tracing::instrument] pub async fn handle(state: State, interaction: Interaction) { - let user_and_guild_and_voice_channel_id_res = get_user_and_guild_and_voice_channel_id( - state.discord_user_id, - &interaction, - &state.vcs_watcher.borrow(), - ); + let user_and_guild_and_voice_channel_id_res = { + get_user_and_guild_and_voice_channel_id( + state.discord_user_id, + &interaction, + &state.vcs_watcher.borrow(), + ) + }; let (user_id, guild_id, voice_channel_id) = match user_and_guild_and_voice_channel_id_res { Ok((user_id, guild_id, voice_channel_id)) => (user_id, guild_id, voice_channel_id), Err(error) => {