externalWatches: make(map[string]bool),
Events: make(chan Event),
Errors: make(chan error),
- done: make(chan bool, 1),
+ done: make(chan bool),
}
go w.readEvents()
for {
// See if there is a message on the "done" channel
- var done bool
select {
- case done = <-w.done:
- default:
- }
-
- // If "done" message is received
- if done {
+ case <-w.done:
errno := syscall.Close(w.kq)
if errno != nil {
w.Errors <- os.NewSyscallError("close", errno)
close(w.Events)
close(w.Errors)
return
+ default:
}
// Get new events