Chore: use only one goroutine to handle statistic (#940)
This commit is contained in:
parent
7512851be1
commit
d8c0fcb9b3
1 changed files with 7 additions and 11 deletions
|
@ -10,7 +10,8 @@ var DefaultManager *Manager
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
DefaultManager = &Manager{}
|
DefaultManager = &Manager{}
|
||||||
DefaultManager.handle()
|
|
||||||
|
go DefaultManager.handle()
|
||||||
}
|
}
|
||||||
|
|
||||||
type Manager struct {
|
type Manager struct {
|
||||||
|
@ -69,18 +70,13 @@ func (m *Manager) ResetStatistic() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Manager) handle() {
|
func (m *Manager) handle() {
|
||||||
go m.handleCh(&m.uploadTemp, &m.uploadBlip)
|
|
||||||
go m.handleCh(&m.downloadTemp, &m.downloadBlip)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Manager) handleCh(temp *int64, blip *int64) {
|
|
||||||
ticker := time.NewTicker(time.Second)
|
ticker := time.NewTicker(time.Second)
|
||||||
|
|
||||||
for {
|
for range ticker.C {
|
||||||
<-ticker.C
|
atomic.StoreInt64(&m.uploadBlip, atomic.LoadInt64(&m.uploadTemp))
|
||||||
|
atomic.StoreInt64(&m.uploadTemp, 0)
|
||||||
atomic.StoreInt64(blip, atomic.LoadInt64(temp))
|
atomic.StoreInt64(&m.downloadBlip, atomic.LoadInt64(&m.downloadTemp))
|
||||||
atomic.StoreInt64(temp, 0)
|
atomic.StoreInt64(&m.downloadTemp, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue