Add bounded concurrent scanner

Single-writer controller with a select loop that offers jobs and accepts
results simultaneously, so bounded channels cannot deadlock. statx/fstatat
relative to the directory fd on Linux/macOS, portable fallback elsewhere.
Hard links counted once, symlink loops detected, virtual filesystems
skipped, errors classified and surfaced.
This commit is contained in:
Andy Dixon
2026-10-02 08:02:32 +01:00
parent 61fd9bf711
commit 8233ddcfba
9 changed files with 1260 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
package platform
import (
"os"
"syscall"
)
func fillSys(m *Meta, fi os.FileInfo) {
if d, ok := fi.Sys().(*syscall.Win32FileAttributeData); ok {
m.BTime = d.CreationTime.Nanoseconds()
}
}