mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Bugfix: fix channel leak when stop error
This commit is contained in:
parent
e6188f8c29
commit
a01f0b4e5e
@ -161,14 +161,17 @@ func (w *Watcher) Stop() error {
|
||||
close(w.stopCh)
|
||||
|
||||
c := make(chan struct{})
|
||||
var once sync.Once
|
||||
closeFunc := func() { close(c) }
|
||||
go func() {
|
||||
defer close(c)
|
||||
defer once.Do(closeFunc)
|
||||
w.wg.Wait()
|
||||
}()
|
||||
|
||||
select {
|
||||
case <-c:
|
||||
case <-time.After(11 * time.Second):
|
||||
once.Do(closeFunc)
|
||||
return fmt.Errorf("timeout on stopping watcher")
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user