|
19 | 19 | use anyhow::Context; |
20 | 20 | use moonutil::{common::lower_surface_targets, dirs::PackageDirs, mooncakes::sync::AutoSyncFlags}; |
21 | 21 | use std::path::Path; |
22 | | -use std::sync::Arc; |
23 | | -use std::thread; |
24 | 22 |
|
25 | 23 | use super::{BuildFlags, UniversalFlags}; |
26 | 24 |
|
@@ -66,41 +64,14 @@ pub fn run_bench(cli: UniversalFlags, cmd: BenchSubcommand) -> anyhow::Result<i3 |
66 | 64 | let surface_targets = cmd.build_flags.target.clone().unwrap(); |
67 | 65 | let targets = lower_surface_targets(&surface_targets); |
68 | 66 | let display_backend_hint = if targets.len() > 1 { Some(()) } else { None }; |
69 | | - let cli = Arc::new(cli); |
70 | | - let source_dir = Arc::new(source_dir); |
71 | | - let target_dir = Arc::new(target_dir); |
72 | | - let mut handles = Vec::new(); |
73 | 67 |
|
74 | 68 | let mut ret_value = 0; |
75 | | - if cmd.build_flags.serial { |
76 | | - for t in targets { |
77 | | - let mut cmd = cmd.clone(); |
78 | | - cmd.build_flags.target_backend = Some(t); |
79 | | - let x = run_bench_internal(&cli, &cmd, &source_dir, &target_dir, display_backend_hint)?; |
80 | | - ret_value = ret_value.max(x); |
81 | | - } |
82 | | - } else { |
83 | | - for t in targets { |
84 | | - let cli = Arc::clone(&cli); |
85 | | - let mut cmd = cmd.clone(); |
86 | | - cmd.build_flags.target_backend = Some(t); |
87 | | - let source_dir = Arc::clone(&source_dir); |
88 | | - let target_dir = Arc::clone(&target_dir); |
89 | | - |
90 | | - let handle = thread::spawn(move || { |
91 | | - run_bench_internal(&cli, &cmd, &source_dir, &target_dir, display_backend_hint) |
92 | | - }); |
93 | | - |
94 | | - handles.push((t, handle)); |
95 | | - } |
96 | | - |
97 | | - for (backend, handle) in handles { |
98 | | - let x = handle |
99 | | - .join() |
100 | | - .unwrap() |
101 | | - .context(format!("failed to run bench for target {backend:?}"))?; |
102 | | - ret_value = ret_value.max(x); |
103 | | - } |
| 69 | + for t in targets { |
| 70 | + let mut cmd = cmd.clone(); |
| 71 | + cmd.build_flags.target_backend = Some(t); |
| 72 | + let x = run_bench_internal(&cli, &cmd, &source_dir, &target_dir, display_backend_hint) |
| 73 | + .context(format!("failed to run bench for target {t:?}"))?; |
| 74 | + ret_value = ret_value.max(x); |
104 | 75 | } |
105 | 76 | Ok(ret_value) |
106 | 77 | } |
|
0 commit comments