aboutsummaryrefslogtreecommitdiff
path: root/internal/progress/render.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-06-24 04:51:05 +0000
committerGravatar Runxi Yu2026-06-24 05:24:16 +0000
commitf0fb5737fd6437c5776e8c5c25563e355f0ceef3 (patch)
treea4c6fb298a92eca4c5cb1a9c28f2b519af93da1b /internal/progress/render.go
parentobject/store/packed: fix promotion (diff)
internal/progress: Concurrent
Diffstat (limited to 'internal/progress/render.go')
-rw-r--r--internal/progress/render.go13
1 files changed, 8 insertions, 5 deletions
diff --git a/internal/progress/render.go b/internal/progress/render.go
index 814ced98..44b9c252 100644
--- a/internal/progress/render.go
+++ b/internal/progress/render.go
@@ -40,13 +40,15 @@ func (meter *Meter) render(now time.Time, eol string) {
}
func (meter *Meter) renderCounters() string {
+ done := meter.done.Load()
+
if meter.total > 0 {
- meter.lastPercent = int(int64(meter.lastDone) * 100 / int64(meter.total))
+ meter.lastPercent = int(done * 100 / int64(meter.total))
- return fmt.Sprintf("%3d%% (%d/%d)%s", meter.lastPercent, meter.lastDone, meter.total, meter.throughputSuffix)
+ return fmt.Sprintf("%3d%% (%d/%d)%s", meter.lastPercent, done, meter.total, meter.throughputSuffix)
}
- return fmt.Sprintf("%d%s", meter.lastDone, meter.throughputSuffix)
+ return fmt.Sprintf("%d%s", done, meter.throughputSuffix)
}
func (meter *Meter) refreshThroughput(now time.Time) {
@@ -67,6 +69,7 @@ func (meter *Meter) refreshThroughput(now time.Time) {
return
}
- rate := uint64(float64(meter.lastBytes) / elapsed.Seconds())
- meter.throughputSuffix = ", " + humanize.Bytes(uint64(meter.lastBytes)) + " | " + humanize.Bytes(rate) + "/s" //nolint:gosec
+ bytes := meter.bytes.Load()
+ rate := uint64(float64(bytes) / elapsed.Seconds())
+ meter.throughputSuffix = ", " + humanize.Bytes(uint64(bytes)) + " | " + humanize.Bytes(rate) + "/s" //nolint:gosec
}