RussellLuo / timingwheel

Golang implementation of Hierarchical Timing Wheels.
MIT License
660 stars 125 forks source link

bucket flush的时候,为什么可能存在需要restart的timer呢? #32

Closed yunlong0928 closed 3 years ago

yunlong0928 commented 3 years ago

在 func (tw TimingWheel) add(t Timer) bool 这个方法里,timer已经找到了对应的bucket,也就是说bucket到期后,bucket上的timer也都到期了需要处理。为什么flush的时候需要考虑timer的restart呢?

yunlong0928 commented 3 years ago

我懂了。flush只是把timer从bucket上移除,restart的时候检测到timer过期就会直接运行对应的func了