ActiveState/tail — pull request #15 by miraclesu (2013-09-14 06:27:59+00:00)
Title: Fixed bug that stop method can't be done when the file isn't exists

Just like the case of the follow case:
```
func TestStop(t *testing.T) {
tail, err := TailFile("/no/such/file", Config{Follow: true, MustExist: false})
if err != nil {
t.Error("MustExist:false is violated")
}
if tail.Stop() != nil {
t.Error("Should be stoped successfully")
}
}
```
In this case, `(tail *Tail) tailFileSync()` always call `(tail *Tail) reopen()`until the log file appearing.
When calling `(tail *Tail) Stop()`, the `dead` channel in [`(t *Tomb) Wait()`](http://bazaar.launchpad.net/~niemeyer/tomb/trunk/view/head:/tomb.go#L110) waitting for a value arrived or closed, but nothing will happen. So, the `(tail *Tail) Stop()` method always wait, it never quit untill the log file appearing.
But sometimes, I just want to quit and needn't to wait the log file appear, so I think that we can call the `
Done()` method instead of the `Kill(nil)` method in the `Stop()` method.