1
0
Fork 0
mirror of https://github.com/restic/restic.git synced 2024-12-23 08:16:36 +00:00

Update progress status when necessary

This commit is contained in:
Chapuis Bertil 2015-08-18 09:26:10 +02:00
parent 05e2afba0b
commit 9d1c03f56e

View file

@ -6,6 +6,8 @@ import (
"time"
)
const minTickerTime = time.Second / 60
type Progress struct {
OnStart func()
OnUpdate ProgressFunc
@ -19,6 +21,7 @@ type Progress struct {
cancel chan struct{}
o sync.Once
d time.Duration
lastUpdate time.Time
running bool
}
@ -92,9 +95,17 @@ func (p *Progress) Report(s Stat) {
p.curM.Lock()
p.cur.Add(s)
cur := p.cur
needUpdate := false
if time.Since(p.lastUpdate) > minTickerTime {
p.lastUpdate = time.Now()
needUpdate = true
}
p.curM.Unlock()
if needUpdate {
p.updateProgress(cur, false)
}
}
func (p *Progress) updateProgress(cur Stat, ticker bool) {