refactor: use go ticker instead of timer

This commit is contained in:
lilasxie 2024-06-24 22:49:38 +08:00
parent a71f6f91fd
commit 4515cd3b9f
3 changed files with 7 additions and 10 deletions

View file

@ -326,8 +326,8 @@ func (db *Database) meter(refresh time.Duration, namespace string) {
delaystats [2]int64 delaystats [2]int64
lastWritePaused time.Time lastWritePaused time.Time
) )
timer := time.NewTimer(refresh) ticker := time.NewTicker(refresh)
defer timer.Stop() defer ticker.Stop()
// Iterate ad infinitum and collect the stats // Iterate ad infinitum and collect the stats
for i := 1; errc == nil && merr == nil; i++ { for i := 1; errc == nil && merr == nil; i++ {
@ -411,8 +411,7 @@ func (db *Database) meter(refresh time.Duration, namespace string) {
select { select {
case errc = <-db.quitChan: case errc = <-db.quitChan:
// Quit requesting, stop hammering the database // Quit requesting, stop hammering the database
case <-timer.C: case <-ticker.C:
timer.Reset(refresh)
// Timeout, gather a new set of stats // Timeout, gather a new set of stats
} }
} }

View file

@ -452,8 +452,8 @@ func (d *Database) Path() string {
// the metrics subsystem. // the metrics subsystem.
func (d *Database) meter(refresh time.Duration, namespace string) { func (d *Database) meter(refresh time.Duration, namespace string) {
var errc chan error var errc chan error
timer := time.NewTimer(refresh) ticker := time.NewTicker(refresh)
defer timer.Stop() defer ticker.Stop()
// Create storage and warning log tracer for write delay. // Create storage and warning log tracer for write delay.
var ( var (
@ -550,8 +550,7 @@ func (d *Database) meter(refresh time.Duration, namespace string) {
select { select {
case errc = <-d.quitChan: case errc = <-d.quitChan:
// Quit requesting, stop hammering the database // Quit requesting, stop hammering the database
case <-timer.C: case <-ticker.C:
timer.Reset(refresh)
// Timeout, gather a new set of stats // Timeout, gather a new set of stats
} }
} }

View file

@ -297,7 +297,7 @@ loop:
func (p *Peer) pingLoop() { func (p *Peer) pingLoop() {
defer p.wg.Done() defer p.wg.Done()
ping := time.NewTimer(pingInterval) ping := time.NewTicker(pingInterval)
defer ping.Stop() defer ping.Stop()
for { for {
@ -307,7 +307,6 @@ func (p *Peer) pingLoop() {
p.protoErr <- err p.protoErr <- err
return return
} }
ping.Reset(pingInterval)
case <-p.pingRecv: case <-p.pingRecv:
SendItems(p.rw, pongMsg) SendItems(p.rw, pongMsg)