diff --git a/app/log/command/command.go b/app/log/command/command.go index 2fe457c22..2524c08bf 100644 --- a/app/log/command/command.go +++ b/app/log/command/command.go @@ -43,18 +43,18 @@ func (s *LoggerServer) FollowLog(_ *FollowLogRequest, stream LoggerService_Follo if !ok { return newError("logger not support following") } - done := make(chan struct{}) + ctx, cancel := context.WithCancel(stream.Context()) f := func(msg cmlog.Message) { err := stream.Send(&FollowLogResponse{ Message: msg.String(), }) if err != nil { - close(done) + cancel() } } follower.AddFollower(f) defer follower.RemoveFollower(f) - <-done + <-ctx.Done() return nil }