diff --git a/Cargo.lock b/Cargo.lock index df3fd6076..f3a5aaf29 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1653,7 +1653,6 @@ version = "0.0.24" dependencies = [ "clap", "globset", - "num_cpus", "regex", "rust-code-analysis", "serde", @@ -1671,7 +1670,6 @@ dependencies = [ "actix-web", "clap", "futures", - "num_cpus", "pretty_assertions", "rust-code-analysis", "serde", diff --git a/rust-code-analysis-cli/Cargo.toml b/rust-code-analysis-cli/Cargo.toml index f463e19e0..e708f47cf 100644 --- a/rust-code-analysis-cli/Cargo.toml +++ b/rust-code-analysis-cli/Cargo.toml @@ -14,7 +14,6 @@ name = "rust-code-analysis-cli" [dependencies] clap = { version = "^3.0", features = ["cargo"] } globset = "^0.4" -num_cpus = "^1.13" regex = "^1.5" rust-code-analysis = { path = "..", version = "0.0"} serde = "^1.0" diff --git a/rust-code-analysis-cli/src/main.rs b/rust-code-analysis-cli/src/main.rs index 5f85a2748..4f5f48e0d 100644 --- a/rust-code-analysis-cli/src/main.rs +++ b/rust-code-analysis-cli/src/main.rs @@ -8,6 +8,7 @@ use std::path::{Path, PathBuf}; use std::process; use std::str::FromStr; use std::sync::{Arc, Mutex}; +use std::thread::available_parallelism; use formats::Format; @@ -394,7 +395,12 @@ fn main() { let num_jobs = if let Ok(num_jobs) = matches.value_of("num_jobs").unwrap().parse::() { std::cmp::max(2, num_jobs) - 1 } else { - std::cmp::max(2, num_cpus::get()) - 1 + std::cmp::max( + 2, + available_parallelism() + .expect("Unrecoverable: Failed to get thread count") + .get(), + ) - 1 }; let line_start = if let Ok(n) = matches.value_of("line_start").unwrap().parse::() { diff --git a/rust-code-analysis-web/Cargo.toml b/rust-code-analysis-web/Cargo.toml index 4cd3072f9..e341d53a1 100644 --- a/rust-code-analysis-web/Cargo.toml +++ b/rust-code-analysis-web/Cargo.toml @@ -16,7 +16,6 @@ actix-rt = "^2.6" actix-web = "^3.3" clap = { version = "^3.1", features = ["derive"] } futures = "^0.3" -num_cpus = "^1.13" rust-code-analysis = { path = "..", version = "0.0" } serde = "^1.0" serde_json = "^1.0" diff --git a/rust-code-analysis-web/src/main.rs b/rust-code-analysis-web/src/main.rs index 3b4e794ec..3a10267ad 100644 --- a/rust-code-analysis-web/src/main.rs +++ b/rust-code-analysis-web/src/main.rs @@ -5,6 +5,8 @@ #![recursion_limit = "256"] mod web; +use std::thread::available_parallelism; + use clap::Parser; use web::server; @@ -32,7 +34,11 @@ struct Opts { async fn main() { let opts = Opts::parse(); - let num_jobs = opts.num_jobs.unwrap_or_else(num_cpus::get); + let num_jobs = opts.num_jobs.unwrap_or_else(|| { + available_parallelism() + .expect("Unrecoverable: Failed to get thread count") + .get() + }); if let Err(e) = server::run(&opts.host, opts.port, num_jobs).await { eprintln!(