From 1ee33b4bb560951aaa3c9ceff876fcfd393ae9d6 Mon Sep 17 00:00:00 2001 From: bufferflies <1045931706@qq.com> Date: Sun, 26 Sep 2021 17:45:42 +0800 Subject: [PATCH] speed schedule exit Signed-off-by: bufferflies <1045931706@qq.com> --- server/cluster/cluster.go | 2 +- server/cluster/coordinator.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/server/cluster/cluster.go b/server/cluster/cluster.go index 30dbb1f5eb2..6b9f2fdae97 100644 --- a/server/cluster/cluster.go +++ b/server/cluster/cluster.go @@ -391,8 +391,8 @@ func (c *RaftCluster) Stop() { } c.running = false - close(c.quit) c.coordinator.stop() + close(c.quit) c.Unlock() c.wg.Wait() log.Info("raftcluster is stopped") diff --git a/server/cluster/coordinator.go b/server/cluster/coordinator.go index 928bb674919..1ec1c2620a4 100644 --- a/server/cluster/coordinator.go +++ b/server/cluster/coordinator.go @@ -849,6 +849,11 @@ func (s *scheduleController) Stop() { func (s *scheduleController) Schedule() []*operator.Operator { for i := 0; i < maxScheduleRetries; i++ { + select { + case <-s.ctx.Done(): + return nil + default: + } cacheCluster := opt.NewCacheCluster(s.cluster) // If we have schedule, reset interval to the minimal interval. if op := s.Scheduler.Schedule(cacheCluster); op != nil {