From 968eb45fb29bb687327dfe7d67e1eb792c1a4d5a Mon Sep 17 00:00:00 2001 From: Ian Manske Date: Thu, 20 Mar 2025 06:49:12 -0700 Subject: [PATCH] Don't collect job output (#15365) # Description Fixes #15359. # User-Facing Changes Bug fix. --- crates/nu-command/src/experimental/job_spawn.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/crates/nu-command/src/experimental/job_spawn.rs b/crates/nu-command/src/experimental/job_spawn.rs index 80cd20c0e7..60f30024be 100644 --- a/crates/nu-command/src/experimental/job_spawn.rs +++ b/crates/nu-command/src/experimental/job_spawn.rs @@ -8,8 +8,8 @@ use std::{ use nu_engine::{command_prelude::*, ClosureEvalOnce}; use nu_protocol::{ - engine::{Closure, Job, ThreadJob}, - report_shell_error, Signals, + engine::{Closure, Job, Redirection, ThreadJob}, + report_shell_error, OutDest, Signals, }; #[derive(Clone)] @@ -76,15 +76,18 @@ impl Command for JobSpawn { let result = thread::Builder::new() .name(format!("background job {}", id.get())) .spawn(move || { - ClosureEvalOnce::new(&job_state, &job_stack, closure) + let mut stack = job_stack.reset_pipes(); + let stack = stack.push_redirection( + Some(Redirection::Pipe(OutDest::Null)), + Some(Redirection::Pipe(OutDest::Null)), + ); + ClosureEvalOnce::new_preserve_out_dest(&job_state, &stack, closure) .run_with_input(Value::nothing(head).into_pipeline_data()) - .and_then(|data| data.into_value(head)) + .and_then(|data| data.drain()) .unwrap_or_else(|err| { if !job_state.signals().interrupted() { report_shell_error(&job_state, &err); } - - Value::nothing(head) }); {