@@ -104,16 +104,16 @@ func Run(globs []string, readall bool, failOnMissingFile bool) (FSWatcher, error
104104
105105 for { // kevent consumer loop
106106 select {
107+ case <- w .done :
108+ return
107109 case event := <- keventProducerLoop .events :
108110 w .processEvent (event , logger2 )
109111 case err := <- keventProducerLoop .errors :
110112 select {
111- case w .errors <- err :
112113 case <- w .done :
114+ case w .errors <- err :
113115 }
114116 return
115- case <- w .done :
116- return
117117 }
118118 }
119119 }()
@@ -352,9 +352,9 @@ func (w *watcher) readNewLines(file *fileWithReader, log logrus.FieldLogger) {
352352 }
353353 log .Debugf ("read line %q" , line )
354354 select {
355- case w .lines <- Line {Line : line , File : file .file .Name ()}:
356355 case <- w .done :
357356 return
357+ case w .lines <- Line {Line : line , File : file .file .Name ()}:
358358 }
359359 }
360360}
@@ -368,8 +368,8 @@ OUTER:
368368 }
369369 }
370370 select {
371- case w .errors <- NewError (FileNotFound , fmt .Sprintf ("%v: no such file" , glob ), nil ):
372371 case <- w .done :
372+ case w .errors <- NewError (FileNotFound , fmt .Sprintf ("%v: no such file" , glob ), nil ):
373373 }
374374 w .Close ()
375375 return true
@@ -478,8 +478,8 @@ func contains(list []*fileWithReader, f *fileWithReader) bool {
478478
479479func (w * watcher ) errorClose (cause error , format string , a ... interface {}) {
480480 select {
481- case w .errors <- NewError (NotSpecified , fmt .Sprintf (format , a ... ), cause ):
482481 case <- w .done :
482+ case w .errors <- NewError (NotSpecified , fmt .Sprintf (format , a ... ), cause ):
483483 }
484484 w .Close ()
485485}
0 commit comments