refactor with startN()

This commit is contained in:
TJ Holowaychuk
2017-11-19 10:50:52 -08:00
parent 8876388566
commit 29c9c77624
+9 -4
View File
@@ -136,10 +136,7 @@ func WithFiles(s []string) Option {
func (p *Pruner) Prune() (*Stats, error) {
var stats Stats
for i := 0; i < runtime.NumCPU(); i++ {
p.wg.Add(1)
go p.start()
}
p.startN(runtime.NumCPU())
defer p.stop()
err := filepath.Walk(p.dir, func(path string, info os.FileInfo, err error) error {
@@ -218,6 +215,14 @@ func (p *Pruner) prune(path string, info os.FileInfo) bool {
return ok
}
// startN starts n loops.
func (p *Pruner) startN(n int) {
for i := 0; i < n; i++ {
p.wg.Add(1)
go p.start()
}
}
// start loop.
func (p *Pruner) start() {
defer p.wg.Done()