mirror of
https://github.com/rust-lang/cargo
synced 2024-07-17 11:08:08 +00:00
Auto merge of #10427 - weihanglo:drop-num_cpus, r=joshtriplett
Use `available_parallelism` instead of `num_cpus`
This commit is contained in:
commit
6d11f9e7d4
|
@ -43,7 +43,6 @@ libc = "0.2"
|
|||
log = "0.4.6"
|
||||
libgit2-sys = "0.13.1"
|
||||
memchr = "2.1.3"
|
||||
num_cpus = "1.0"
|
||||
opener = "0.5"
|
||||
os_info = "3.0.7"
|
||||
percent-encoding = "2.0"
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
use crate::core::compiler::CompileKind;
|
||||
use crate::util::interning::InternedString;
|
||||
use crate::util::{CargoResult, Config, RustfixDiagnosticServer};
|
||||
use anyhow::bail;
|
||||
use anyhow::{bail, Context as _};
|
||||
use cargo_util::ProcessBuilder;
|
||||
use serde::ser;
|
||||
use std::cell::RefCell;
|
||||
use std::path::PathBuf;
|
||||
use std::thread::available_parallelism;
|
||||
|
||||
/// Configuration information for a rustc build.
|
||||
#[derive(Debug)]
|
||||
|
@ -70,7 +71,12 @@ impl BuildConfig {
|
|||
its environment, ignoring the `-j` parameter",
|
||||
)?;
|
||||
}
|
||||
let jobs = jobs.or(cfg.jobs).unwrap_or(::num_cpus::get() as u32);
|
||||
let jobs = match jobs.or(cfg.jobs) {
|
||||
Some(j) => j,
|
||||
None => available_parallelism()
|
||||
.context("failed to determine the amount of parallelism available")?
|
||||
.get() as u32,
|
||||
};
|
||||
if jobs == 0 {
|
||||
anyhow::bail!("jobs may not be 0");
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ use anyhow::Context as _;
|
|||
use cargo_util::paths;
|
||||
use std::collections::HashMap;
|
||||
use std::io::{BufWriter, Write};
|
||||
use std::thread::available_parallelism;
|
||||
use std::time::{Duration, Instant, SystemTime};
|
||||
|
||||
pub struct Timings<'cfg> {
|
||||
|
@ -380,6 +381,9 @@ impl<'cfg> Timings<'cfg> {
|
|||
};
|
||||
let total_time = format!("{:.1}s{}", duration, time_human);
|
||||
let max_concurrency = self.concurrency.iter().map(|c| c.active).max().unwrap();
|
||||
let num_cpus = available_parallelism()
|
||||
.map(|x| x.get().to_string())
|
||||
.unwrap_or_else(|_| "n/a".into());
|
||||
let max_rustc_concurrency = self
|
||||
.concurrency
|
||||
.iter()
|
||||
|
@ -442,7 +446,7 @@ impl<'cfg> Timings<'cfg> {
|
|||
self.total_fresh + self.total_dirty,
|
||||
max_concurrency,
|
||||
bcx.build_config.jobs,
|
||||
num_cpus::get(),
|
||||
num_cpus,
|
||||
self.start_str,
|
||||
total_time,
|
||||
rustc_info,
|
||||
|
|
Loading…
Reference in a new issue