From a701af45cb25cd5a7f45f6b51aa224b7a5d65f3a Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Sun, 5 Mar 2023 23:10:13 +0100 Subject: [PATCH] lintcheck: use multithreading unless --fix or --recursive is used --- lintcheck/src/config.rs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lintcheck/src/config.rs b/lintcheck/src/config.rs index e1836c19a..3f01e9bb0 100644 --- a/lintcheck/src/config.rs +++ b/lintcheck/src/config.rs @@ -1,10 +1,16 @@ use clap::Parser; -use std::path::PathBuf; +use std::{num::NonZeroUsize, path::PathBuf}; #[derive(Clone, Debug, Parser)] pub(crate) struct LintcheckConfig { - /// Number of threads to use, 0 automatic choice - #[clap(long = "jobs", short = 'j', value_name = "N", default_value_t = 1)] + /// Number of threads to use (default: all unless --fix or --recursive) + #[clap( + long = "jobs", + short = 'j', + value_name = "N", + default_value_t = 0, + hide_default_value = true + )] pub max_jobs: usize, /// Set the path for a crates.toml where lintcheck should read the sources from #[clap( @@ -51,8 +57,11 @@ impl LintcheckConfig { // look at the --threads arg, if 0 is passed, use the threads count if config.max_jobs == 0 { - // automatic choice - config.max_jobs = std::thread::available_parallelism().map_or(1, |n| n.get()); + config.max_jobs = if config.fix || config.recursive { + 1 + } else { + std::thread::available_parallelism().map_or(1, NonZeroUsize::get) + }; }; for lint_name in &mut config.lint_filter {