cleanup clone littering in server.rs

This commit is contained in:
sreedevk
2025-08-07 16:11:47 +00:00
parent 68c2491fd0
commit d102d92bfa

View File

@@ -42,60 +42,68 @@ impl Server {
progbarbox.set_draw_target(ProgressDrawTarget::hidden()); progbarbox.set_draw_target(ProgressDrawTarget::hidden());
} }
let app_args_clone_for_sc = self.app_args.clone(); let (app_args_sc, app_args_sw, app_args_hw) = (
let app_args_clone_for_sw = self.app_args.clone(); Arc::clone(&self.app_args),
let app_args_clone_for_hw = self.app_args.clone(); Arc::clone(&self.app_args),
let file_queue_clone_sc = self.filequeue.clone(); Arc::clone(&self.app_args),
let file_queue_clone_pr = self.filequeue.clone(); );
let (file_queue_sc, file_queue_pr) = (
Arc::clone(&self.filequeue),
Arc::clone(&self.filequeue),
);
let scanner_finished = Arc::new(AtomicBool::new(false)); let scanner_finished = Arc::new(AtomicBool::new(false));
let sw_sort_finished = Arc::new(AtomicBool::new(false)); let sw_sort_finished = Arc::new(AtomicBool::new(false));
let (sfin_sc, sfin_pr) = (
let sfin_sc_tr_cl = scanner_finished.clone(); Arc::clone(&scanner_finished),
let sfin_pr_tr_cl = scanner_finished.clone(); Arc::clone(&scanner_finished),
);
let swfin_pr_tr_sw = sw_sort_finished.clone(); let (swfin_pr_sw, swfin_pr_hw) = (
let swfin_pr_tr_hw = sw_sort_finished.clone(); Arc::clone(&sw_sort_finished),
Arc::clone(&sw_sort_finished),
let store_dupl_sw_for_sw = self.sw_duplicate_set.clone(); );
let store_dupl_sw_for_hw = self.sw_duplicate_set.clone(); let (store_sw, store_sw2, store_hw) = (
let store_dupl_hw = self.hw_duplicate_set.clone(); Arc::clone(&self.sw_duplicate_set),
let max_file_path_len_clone = self.max_file_path_len.clone(); Arc::clone(&self.sw_duplicate_set),
Arc::clone(&self.hw_duplicate_set),
let progbarbox_sc_clone = progbarbox.clone(); );
let progbarbox_pr_clone_for_sw = progbarbox.clone(); let max_file_path_len = Arc::clone(&self.max_file_path_len);
let progbarbox_pr_clone_for_hw = progbarbox.clone(); let (prog_sc, prog_sw, prog_hw) = (
Arc::clone(&progbarbox),
Arc::clone(&progbarbox),
Arc::clone(&progbarbox),
);
self.threadpool.execute(move || { self.threadpool.execute(move || {
Scanner::new(app_args_clone_for_sc) Scanner::new(app_args_sc)
.expect("unable to initialize scanner.") .expect("unable to initialize scanner.")
.scan(file_queue_clone_sc, progbarbox_sc_clone) .scan(file_queue_sc, prog_sc)
.expect("scanner failed."); .expect("scanner failed.");
sfin_sc_tr_cl.store(true, std::sync::atomic::Ordering::Relaxed); sfin_sc.store(true, std::sync::atomic::Ordering::Relaxed);
}); });
self.threadpool.execute(move || { self.threadpool.execute(move || {
Processor::sizewise( Processor::sizewise(
app_args_clone_for_sw, app_args_sw,
sfin_pr_tr_cl, sfin_pr,
store_dupl_sw_for_sw, store_sw,
file_queue_clone_pr, file_queue_pr,
progbarbox_pr_clone_for_sw, prog_sw,
) )
.expect("sizewise scanner failed."); .expect("sizewise scanner failed.");
swfin_pr_tr_sw.store(true, std::sync::atomic::Ordering::Relaxed); swfin_pr_sw.store(true, std::sync::atomic::Ordering::Relaxed);
}); });
self.threadpool.execute(move || { self.threadpool.execute(move || {
Processor::hashwise( Processor::hashwise(
app_args_clone_for_hw, app_args_hw,
store_dupl_sw_for_hw, store_sw2,
store_dupl_hw, store_hw,
progbarbox_pr_clone_for_hw, prog_hw,
max_file_path_len_clone, max_file_path_len,
seed, seed,
swfin_pr_tr_hw, swfin_pr_hw,
) )
.expect("sizewise scanner failed."); .expect("sizewise scanner failed.");
}); });