fix: move BufWriter creation inside threads for stdout_a and stdout_b

This commit is contained in:
Andrew Phillips (aider)
2025-05-06 13:54:15 -03:00
parent 088a5ccbad
commit d90d48cbf2

View File

@@ -535,15 +535,14 @@ fn mode_diff(cmd: &mut Command, args: Args, ids: &mut Vec<i64>, tags: &mut Vec<S
let stdout_a_raw = unsafe { std::fs::File::from_raw_fd(fd_a_write) }; let stdout_a_raw = unsafe { std::fs::File::from_raw_fd(fd_a_write) };
let stdout_b_raw = unsafe { std::fs::File::from_raw_fd(fd_b_write) }; let stdout_b_raw = unsafe { std::fs::File::from_raw_fd(fd_b_write) };
let stdout_a = BufWriter::new(stdout_a_raw);
let stdout_b = BufWriter::new(stdout_b_raw);
debug!("MAIN: Sending item A to diff"); debug!("MAIN: Sending item A to diff");
let handle_a = { let handle_a = {
let stdout_a = stdout_a; let stdout_a_raw = stdout_a_raw;
let item_path_a = item_path_a.clone(); let item_path_a = item_path_a.clone();
let compression_type_a = compression_type_a.clone(); let compression_type_a = compression_type_a.clone();
std::thread::spawn(move || { std::thread::spawn(move || {
let stdout_a = BufWriter::new(stdout_a_raw);
let compression_engine_a = compression::get_engine(compression_type_a).expect("Unable to get compression engine"); let compression_engine_a = compression::get_engine(compression_type_a).expect("Unable to get compression engine");
compression_engine_a.copy(item_path_a, &mut stdout_a).unwrap() compression_engine_a.copy(item_path_a, &mut stdout_a).unwrap()
}) })
@@ -551,10 +550,11 @@ fn mode_diff(cmd: &mut Command, args: Args, ids: &mut Vec<i64>, tags: &mut Vec<S
debug!("MAIN: Sending item B to diff"); debug!("MAIN: Sending item B to diff");
let handle_b = { let handle_b = {
let stdout_b = stdout_b; let stdout_b_raw = stdout_b_raw;
let item_path_b = item_path_b.clone(); let item_path_b = item_path_b.clone();
let compression_type_b = compression_type_b.clone(); let compression_type_b = compression_type_b.clone();
std::thread::spawn(move || { std::thread::spawn(move || {
let stdout_b = BufWriter::new(stdout_b_raw);
let compression_engine_b = compression::get_engine(compression_type_b).expect("Unable to get compression engine"); let compression_engine_b = compression::get_engine(compression_type_b).expect("Unable to get compression engine");
compression_engine_b.copy(item_path_b, &mut stdout_b).unwrap() compression_engine_b.copy(item_path_b, &mut stdout_b).unwrap()
}) })