From 583cb96cff18b219b3e7a6f0202993ec595acff1 Mon Sep 17 00:00:00 2001 From: Andy Gayton Date: Wed, 7 May 2025 05:25:16 -0400 Subject: [PATCH] fix: clear jobs _after_ traversing jobs for kill_all (#15685) # Description Move clear jobs to _after_ traversing them, in order to kill them. # User-Facing Changes None # Tests + Formatting It looks like it's only used once, in crates/nu-engine/src/exit.rs --- crates/nu-protocol/src/engine/jobs.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/nu-protocol/src/engine/jobs.rs b/crates/nu-protocol/src/engine/jobs.rs index 71c18a4c83..d0ef1ecda3 100644 --- a/crates/nu-protocol/src/engine/jobs.rs +++ b/crates/nu-protocol/src/engine/jobs.rs @@ -112,13 +112,13 @@ impl Jobs { pub fn kill_all(&mut self) -> std::io::Result<()> { self.last_frozen_job_id = None; - self.jobs.clear(); - let first_err = self .iter() .map(|(_, job)| job.kill().err()) .fold(None, |acc, x| acc.or(x)); + self.jobs.clear(); + if let Some(err) = first_err { Err(err) } else {