diff --git a/owner/mock.go b/owner/mock.go index 49c81104b8a22..f33f2f37584ee 100644 --- a/owner/mock.go +++ b/owner/mock.go @@ -123,6 +123,13 @@ func (*mockManager) SetOwnerOpValue(_ context.Context, op OpType) error { return nil } +func sleepContext(ctx context.Context, delay time.Duration) { + select { + case <-ctx.Done(): + case <-time.After(delay): + } +} + // CampaignOwner implements Manager.CampaignOwner interface. func (m *mockManager) CampaignOwner() error { m.wg.Add(1) @@ -142,10 +149,10 @@ func (m *mockManager) CampaignOwner() error { return case <-m.resignDone: m.RetireOwner() - time.Sleep(1 * time.Second) // Give a chance to the other owner managers to get owner. + sleepContext(m.ctx, 1*time.Second) // Give a chance to the other owner managers to get owner. default: m.toBeOwner() - time.Sleep(1 * time.Second) + sleepContext(m.ctx, 1*time.Second) // Speed up domain.Close() logutil.BgLogger().Debug("owner manager tick", zap.String("category", "ddl"), zap.String("ID", m.id), zap.String("ownerKey", m.key), zap.String("currentOwner", util.MockGlobalStateEntry.OwnerKey(m.storeID, m.key).GetOwner())) }