pkg/filenotify/poller: fix Close()

The code in Close() that removes the watches was not working,
because it first sets `w.closed = true` and then calls w.close(),
which starts with
```
        if w.closed {
                return errPollerClosed
	}
```

Fix by setting w.closed only after calling w.remove() for all the
files being watched.

While at it, remove the duplicated `delete(w.watches, name)` code.

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
(cherry picked from commit fffa8958d00860b4e3563327a2cc6836a12d4ba9)
Upstream-commit: 4e2dbfa1af48191126b0910b9463bf94d8371886
Component: engine
This commit is contained in:
Kir Kolyshkin
2018-09-06 18:39:21 -07:00
parent abbd665e30
commit 21c28e4566
+1 -2
View File
@@ -115,11 +115,10 @@ func (w *filePoller) Close() error {
return nil
}
w.closed = true
for name := range w.watches {
w.remove(name)
delete(w.watches, name)
}
w.closed = true
return nil
}