feat(pi-natives): tracked searched files count in parallel grep status

- Added a `files_searched` atomic counter to `run_parallel_search` to track the total number of files processed.
- Increments the search counter during parallel execution immediately after a file is successfully read.
- Short-circuits and filters out file search results that yield zero matches.
This commit is contained in:
can1357
2026-06-18 01:57:28 +02:00
parent 66bbd004fc
commit 77e00a2886
+5
View File
@@ -1264,6 +1264,7 @@ fn run_parallel_search(
matcher: &grep_regex::RegexMatcher,
params: SearchParams,
skipped_oversized: &AtomicU64,
files_searched: &AtomicU64,
) -> Vec<FileSearchResult> {
let file_params = per_file_params(params);
let raw: Vec<Option<FileSearchResult>> = entries
@@ -1279,6 +1280,7 @@ fn run_parallel_search(
},
ReadFile::Skipped => return None,
};
files_searched.fetch_add(1, Ordering::Relaxed);
let search = if file_params.mode == OutputMode::FilesWithMatches {
let matched = matcher.is_match(bytes.as_slice()).ok()?;
SearchResultInternal {
@@ -1290,6 +1292,9 @@ fn run_parallel_search(
} else {
run_search_slice(searcher, matcher, bytes.as_slice(), file_params).ok()?
};
if search.match_count == 0 {
return None;
}
Some(FileSearchResult {
relative_path: entry.relative_path.clone(),
matches: search.matches,