dm
/
cs
forked from sm/cs
1
0
Fork 0

Moved file reading to seperate func

This commit is contained in:
Derek McQuay 2016-11-15 22:03:19 -08:00
parent b11c4701c3
commit ad3d27157b
1 changed files with 18 additions and 13 deletions

View File

@ -70,24 +70,29 @@ func streams(files []string) chan input {
return r return r
} }
func fileRead(j chan work, stream input) {
if stream.err != nil {
j <- work{err: stream.err}
//break
return
}
s := bufio.NewScanner(stream.f)
for s.Scan() {
cs, err := parseCS(s.Text())
j <- work{cs, err}
}
stream.f.Close()
if s.Err() != nil {
j <- work{err: s.Err()}
}
}
func check(files []string) chan error { func check(files []string) chan error {
jobs := make(chan work) jobs := make(chan work)
go func() { go func() {
for stream := range streams(files) { for stream := range streams(files) {
if stream.err != nil { go fileRead(jobs, stream)
jobs <- work{err: stream.err}
break
}
s := bufio.NewScanner(stream.f)
for s.Scan() {
cs, err := parseCS(s.Text())
jobs <- work{cs, err}
}
stream.f.Close()
if s.Err() != nil {
jobs <- work{err: s.Err()}
}
} }
close(jobs) close(jobs)
}() }()