mirror of
https://github.com/golang/go
synced 2024-11-21 18:44:45 -07:00
gofmt: simpler walkDir
Swapping the goroutines lets them reuse the communication completion on v instead of needing a second channel (done). R=gri CC=golang-dev https://golang.org/cl/4287045
This commit is contained in:
parent
108564dabc
commit
35cee9f5d8
@ -158,21 +158,16 @@ func (v fileVisitor) VisitFile(path string, f *os.FileInfo) {
|
||||
|
||||
|
||||
func walkDir(path string) {
|
||||
// start an error handler
|
||||
done := make(chan bool)
|
||||
v := make(fileVisitor)
|
||||
go func() {
|
||||
for err := range v {
|
||||
if err != nil {
|
||||
report(err)
|
||||
}
|
||||
}
|
||||
done <- true
|
||||
filepath.Walk(path, v, v)
|
||||
close(v)
|
||||
}()
|
||||
// walk the tree
|
||||
filepath.Walk(path, v, v)
|
||||
close(v) // terminate error handler loop
|
||||
<-done // wait for all errors to be reported
|
||||
for err := range v {
|
||||
if err != nil {
|
||||
report(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user