Remove IncomingWorker

This commit is contained in:
Jan Bader 2021-08-05 23:58:23 +02:00
parent c885c03130
commit 1144e97045
2 changed files with 26 additions and 37 deletions

View File

@ -20,8 +20,6 @@ type FilesMap struct {
FilesHashing chan fileEntry
FilesIncoming chan fileEntry
FilesHashed chan fileEntry
progress *mpb.Progress
@ -33,39 +31,14 @@ type FilesMap struct {
func newFilesMap() *FilesMap {
return &FilesMap{
FilesBySize: map[int64]string{},
FilesByHash: map[string][]string{},
FilesHashed: make(chan fileEntry),
FilesIncoming: make(chan fileEntry, 100000),
FilesHashing: make(chan fileEntry),
progress: mpb.New(mpb.WithWidth(64)),
FilesBySize: map[int64]string{},
FilesByHash: map[string][]string{},
FilesHashed: make(chan fileEntry, 100000),
FilesHashing: make(chan fileEntry),
progress: mpb.New(mpb.WithWidth(64)),
}
}
func (fm *FilesMap) IncomingWorker() {
for file := range fm.FilesIncoming {
fm.incomingBar.Increment()
if *verbose {
fmt.Println("Incoming", file.path)
}
prevFile, ok := fm.FilesBySize[file.size]
if !ok {
fm.FilesBySize[file.size] = file.path
continue
}
if prevFile != "" {
fm.FilesHashing <- fileEntry{prevFile, file.size, ""}
}
fm.FilesBySize[file.size] = ""
fm.FilesHashing <- file
}
close(fm.FilesHashing)
}
func (fm *FilesMap) HashingWorker(wg *sync.WaitGroup) {
for file := range fm.FilesHashing {
if *verbose {
@ -117,19 +90,37 @@ func (fm *FilesMap) WalkDirectories() int {
return nil
}
if *minSize > info.Size() {
size := info.Size()
if *minSize > size {
return nil
}
fm.FilesIncoming <- fileEntry{path, info.Size(), ""}
fm.incomingBar.Increment()
countFiles++
fm.incomingBar.SetTotal(int64(countFiles), false)
if *verbose {
fmt.Println("Incoming", path)
}
prevFile, ok := fm.FilesBySize[size]
if !ok {
fm.FilesBySize[size] = path
return nil
}
if prevFile != "" {
fm.FilesHashing <- fileEntry{prevFile, size, ""}
}
fm.FilesBySize[size] = ""
fm.FilesHashing <- fileEntry{path, info.Size(), ""}
return nil
})
}
fm.incomingBar.SetTotal(int64(countFiles), true)
close(fm.FilesIncoming)
close(fm.FilesHashing)
return countFiles
}

View File

@ -58,8 +58,6 @@ func main() {
go filesMap.HashingWorker(&wg)
}
go filesMap.IncomingWorker()
go filesMap.HashedWorker(done)
countFiles = filesMap.WalkDirectories()