Add WaitGroup for HashingWorker

This commit is contained in:
2020-11-22 01:02:07 +01:00
parent a3fa3d4e7c
commit e33d7e2ca0
2 changed files with 30 additions and 16 deletions

View File

@@ -1,8 +1,11 @@
package main
import (
"flag"
"fmt"
"log"
"os"
"path/filepath"
"sync"
)
@@ -53,7 +56,7 @@ func (fm *FilesMap) IncomingWorker() {
close(fm.FilesHashing)
}
func (fm *FilesMap) HashingWorker() {
func (fm *FilesMap) HashingWorker(wg *sync.WaitGroup) {
for file := range fm.FilesHashing {
if *verbose {
fmt.Println("Hashing", file.path)
@@ -69,7 +72,7 @@ func (fm *FilesMap) HashingWorker() {
file.hash = hash
fm.FilesHashed <- file
}
close(fm.FilesHashed)
wg.Done()
}
func (fm *FilesMap) HashedWorker(done chan bool) {
@@ -89,3 +92,18 @@ func (fm *FilesMap) HashedWorker(done chan bool) {
done <- true
}
func (fm *FilesMap) WalkDirectories() {
for _, path := range flag.Args() {
filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
if info.IsDir() {
return nil
}
fm.FilesIncoming <- fileEntry{path, info.Size(), ""}
return nil
})
}
close(fm.FilesIncoming)
}