Merge pull request #15130 from guozhao-coder/replace-timeAfter

etcdserver: use time.Ticker instead of time.After
This commit is contained in:
Benjamin Wang 2023-01-19 05:09:21 +08:00 committed by GitHub
commit 756875151f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 5 deletions

View File

@ -2206,6 +2206,8 @@ func (s *EtcdServer) monitorKVHash() {
if t == 0 {
return
}
checkTicker := time.NewTicker(t)
defer checkTicker.Stop()
lg := s.Logger()
lg.Info(
@ -2217,7 +2219,7 @@ func (s *EtcdServer) monitorKVHash() {
select {
case <-s.stopping:
return
case <-time.After(t):
case <-checkTicker.C:
}
if !s.isLeader() {
continue

View File

@ -607,12 +607,15 @@ func (le *lessor) Stop() {
func (le *lessor) runLoop() {
defer close(le.doneC)
delayTicker := time.NewTicker(500 * time.Millisecond)
defer delayTicker.Stop()
for {
le.revokeExpiredLeases()
le.checkpointScheduledLeases()
select {
case <-time.After(500 * time.Millisecond):
case <-delayTicker.C:
case <-le.stopC:
return
}

View File

@ -211,6 +211,10 @@ func (s *watchableStore) Restore(b backend.Backend) error {
func (s *watchableStore) syncWatchersLoop() {
defer s.wg.Done()
waitDuration := 100 * time.Millisecond
delayTicker := time.NewTicker(waitDuration)
defer delayTicker.Stop()
for {
s.mu.RLock()
st := time.Now()
@ -223,15 +227,15 @@ func (s *watchableStore) syncWatchersLoop() {
}
syncDuration := time.Since(st)
waitDuration := 100 * time.Millisecond
delayTicker.Reset(waitDuration)
// more work pending?
if unsyncedWatchers != 0 && lastUnsyncedWatchers > unsyncedWatchers {
// be fair to other store operations by yielding time taken
waitDuration = syncDuration
delayTicker.Reset(syncDuration)
}
select {
case <-time.After(waitDuration):
case <-delayTicker.C:
case <-s.stopc:
return
}