check the stop channel while waiting on inotify

fixes http://bugs.activestate.com/show_bug.cgi?id=95718#c3
This commit is contained in:
Sridhar Ratnakumar 2012-10-11 21:47:58 -07:00
parent 3ff602e781
commit 5c84486ca3
1 changed files with 21 additions and 18 deletions

13
tail.go
View File

@ -146,10 +146,8 @@ func (tail *Tail) tailFileSync(end bool, retry bool) {
changes = tail.watcher.ChangeEvents()
}
//log.Println("WAITING ", tail.Filename)
_, ok := <-changes
//log.Println("RECEIVED ", tail.Filename)
select {
case _, ok := <-changes:
if !ok {
// file got deleted/renamed
if retry {
@ -165,11 +163,16 @@ func (tail *Tail) tailFileSync(end bool, retry bool) {
return
}
}
case <-tail.stop:
// stop the tailer if requested.
// FIXME: respect DRY (see below)
return
}
}
}
// stop the tailer if requested.
// FIXME: won't happen promptly; http://bugs.activestate.com/show_bug.cgi?id=95718#c3
select {
case <-tail.stop:
return