Merge pull request #506 from milosgajdos83/consul-close-watcher

Return registry.ErrWatcherStopped when consul watcher stops
This commit is contained in:
Asim Aslam 2019-06-09 16:03:06 +01:00 committed by GitHub
commit b6833e478d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,7 +1,6 @@
package consul package consul
import ( import (
"errors"
"log" "log"
"os" "os"
"sync" "sync"
@ -246,14 +245,16 @@ func (cw *consulWatcher) handle(idx uint64, data interface{}) {
func (cw *consulWatcher) Next() (*registry.Result, error) { func (cw *consulWatcher) Next() (*registry.Result, error) {
select { select {
case <-cw.exit: case <-cw.exit:
return nil, errors.New("result chan closed") return nil, registry.ErrWatcherStopped
case r, ok := <-cw.next: case r, ok := <-cw.next:
if !ok { if !ok {
return nil, errors.New("result chan closed") return nil, registry.ErrWatcherStopped
} }
return r, nil return r, nil
} }
return nil, errors.New("result chan closed") // NOTE: This is a dead code path: e.g. it will never be reached
// as we return in all previous code paths never leading to this return
return nil, registry.ErrWatcherStopped
} }
func (cw *consulWatcher) Stop() { func (cw *consulWatcher) Stop() {