diff --git a/server/application/application.go b/server/application/application.go index c895948d87587..40e50e8fd8d08 100644 --- a/server/application/application.go +++ b/server/application/application.go @@ -71,6 +71,7 @@ func (s *Server) Watch(q *ApplicationQuery, ws ApplicationService_WatchServer) e if err != nil { return err } + done := make(chan bool) go func() { for next := range w.ResultChan() { app := *next.Object.(*appv1.Application) @@ -84,10 +85,12 @@ func (s *Server) Watch(q *ApplicationQuery, ws ApplicationService_WatchServer) e } } } + done <- true }() select { case <-ws.Context().Done(): w.Stop() + case <-done: } return nil }