From 73be3f5247e319181936230c3306f927d134b1d8 Mon Sep 17 00:00:00 2001 From: wuyangfan <1102042793@qq.com> Date: Sun, 17 May 2026 18:51:31 +0800 Subject: [PATCH] fix(asyncgit): log diff/blame notification channel errors Avoid panicking when the UI channel is closed while async diff or blame workers finish, matching the status worker pattern. Co-authored-by: Cursor --- asyncgit/src/blame.rs | 14 +++++++------- asyncgit/src/diff.rs | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/asyncgit/src/blame.rs b/asyncgit/src/blame.rs index 6bf4afe3..06a59144 100644 --- a/asyncgit/src/blame.rs +++ b/asyncgit/src/blame.rs @@ -124,13 +124,13 @@ impl AsyncBlame { arc_pending.fetch_sub(1, Ordering::Relaxed); - sender - .send(if notify { - AsyncGitNotification::Blame - } else { - AsyncGitNotification::FinishUnchanged - }) - .expect("error sending blame"); + if let Err(e) = sender.send(if notify { + AsyncGitNotification::Blame + } else { + AsyncGitNotification::FinishUnchanged + }) { + log::error!("blame notify error: {e}"); + } }); Ok(None) diff --git a/asyncgit/src/diff.rs b/asyncgit/src/diff.rs index b9f62e55..5bef0306 100644 --- a/asyncgit/src/diff.rs +++ b/asyncgit/src/diff.rs @@ -140,13 +140,13 @@ impl AsyncDiff { arc_pending.fetch_sub(1, Ordering::Relaxed); - sender - .send(if notify { - AsyncGitNotification::Diff - } else { - AsyncGitNotification::FinishUnchanged - }) - .expect("error sending diff"); + if let Err(e) = sender.send(if notify { + AsyncGitNotification::Diff + } else { + AsyncGitNotification::FinishUnchanged + }) { + log::error!("diff notify error: {e}"); + } }); Ok(None)