Do not increment in threads values every time when finding file/folder(works quite good, may works bad with folders with ~several thousands of files)
This commit is contained in:
parent
29d135b169
commit
f398497cd2
|
@ -399,6 +399,7 @@ where
|
|||
return (dir_result, warnings, fe_result, set_as_not_empty_folder_list, folder_entries_list);
|
||||
};
|
||||
|
||||
let mut counter = 0;
|
||||
// Check every sub folder/file/link etc.
|
||||
'dir: for entry in read_dir {
|
||||
let Some((entry_data, metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else {
|
||||
|
@ -410,7 +411,7 @@ where
|
|||
process_dir_in_file_symlink_mode(recursive_search, current_folder, entry_data, &directories, &mut dir_result, &mut warnings, &excluded_items);
|
||||
}
|
||||
(EntryType::Dir, Collect::EmptyFolders) => {
|
||||
atomic_counter.fetch_add(1, Ordering::Relaxed);
|
||||
counter += 1;
|
||||
process_dir_in_dir_mode(
|
||||
&metadata,
|
||||
current_folder,
|
||||
|
@ -424,7 +425,7 @@ where
|
|||
);
|
||||
}
|
||||
(EntryType::File, Collect::Files) => {
|
||||
atomic_counter.fetch_add(1, Ordering::Relaxed);
|
||||
counter += 1;
|
||||
process_file_in_file_mode(
|
||||
&metadata,
|
||||
entry_data,
|
||||
|
@ -451,10 +452,10 @@ where
|
|||
set_as_not_empty_folder_list.push(current_folder.clone());
|
||||
}
|
||||
(EntryType::File, Collect::InvalidSymlinks) => {
|
||||
atomic_counter.fetch_add(1, Ordering::Relaxed);
|
||||
counter += 1;
|
||||
}
|
||||
(EntryType::Symlink, Collect::InvalidSymlinks) => {
|
||||
atomic_counter.fetch_add(1, Ordering::Relaxed);
|
||||
counter += 1;
|
||||
process_symlink_in_symlink_mode(
|
||||
&metadata,
|
||||
entry_data,
|
||||
|
@ -471,6 +472,10 @@ where
|
|||
}
|
||||
}
|
||||
}
|
||||
if counter > 0 {
|
||||
// Do not increase counter one by one in threads, because usually it
|
||||
atomic_counter.fetch_add(counter, Ordering::Relaxed);
|
||||
}
|
||||
(dir_result, warnings, fe_result, set_as_not_empty_folder_list, folder_entries_list)
|
||||
})
|
||||
.collect();
|
||||
|
|
Loading…
Reference in a new issue