rust/hg-core/src/dirstate_tree/status.rs
branchstable
changeset 50321 14b57943ae6d
parent 50300 edcc35a4f1dc
child 50862 5efccea9cf38
equal deleted inserted replaced
50320:9c5e743e400c 50321:14b57943ae6d
    45     root_dir: PathBuf,
    45     root_dir: PathBuf,
    46     ignore_files: Vec<PathBuf>,
    46     ignore_files: Vec<PathBuf>,
    47     options: StatusOptions,
    47     options: StatusOptions,
    48 ) -> Result<(DirstateStatus<'dirstate>, Vec<PatternFileWarning>), StatusError>
    48 ) -> Result<(DirstateStatus<'dirstate>, Vec<PatternFileWarning>), StatusError>
    49 {
    49 {
    50     // Force the global rayon threadpool to not exceed 16 concurrent threads.
    50     // Also cap for a Python caller of this function, but don't complain if
    51     // This is a stop-gap measure until we figure out why using more than 16
    51     // the global threadpool has already been set since this code path is also
    52     // threads makes `status` slower for each additional thread.
    52     // being used by `rhg`, which calls this early.
    53     // We use `ok()` in case the global threadpool has already been
    53     let _ = crate::utils::cap_default_rayon_threads();
    54     // instantiated in `rhg` or some other caller.
       
    55     // TODO find the underlying cause and fix it, then remove this.
       
    56     rayon::ThreadPoolBuilder::new()
       
    57         .num_threads(16.min(rayon::current_num_threads()))
       
    58         .build_global()
       
    59         .ok();
       
    60 
    54 
    61     let (ignore_fn, warnings, patterns_changed): (IgnoreFnType, _, _) =
    55     let (ignore_fn, warnings, patterns_changed): (IgnoreFnType, _, _) =
    62         if options.list_ignored || options.list_unknown {
    56         if options.list_ignored || options.list_unknown {
    63             let (ignore_fn, warnings, changed) = match dmap.dirstate_version {
    57             let (ignore_fn, warnings, changed) = match dmap.dirstate_version {
    64                 DirstateVersion::V1 => {
    58                 DirstateVersion::V1 => {