mirror of
https://github.com/containers/podman.git
synced 2025-12-01 02:27:13 +08:00
fix(deps): update module github.com/vbauerster/mpb/v8 to v8.8.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This commit is contained in:
178
vendor/github.com/vbauerster/mpb/v8/bar.go
generated
vendored
178
vendor/github.com/vbauerster/mpb/v8/bar.go
generated
vendored
@@ -31,28 +31,26 @@ type extenderFunc func(decor.Statistics, ...io.Reader) ([]io.Reader, error)
|
||||
|
||||
// bState is actual bar's state.
|
||||
type bState struct {
|
||||
id int
|
||||
priority int
|
||||
reqWidth int
|
||||
shutdown int
|
||||
total int64
|
||||
current int64
|
||||
refill int64
|
||||
trimSpace bool
|
||||
aborted bool
|
||||
triggerComplete bool
|
||||
rmOnComplete bool
|
||||
noPop bool
|
||||
autoRefresh bool
|
||||
buffers [3]*bytes.Buffer
|
||||
decorators [2][]decor.Decorator
|
||||
averageDecorators []decor.AverageDecorator
|
||||
ewmaDecorators []decor.EwmaDecorator
|
||||
shutdownListeners []decor.ShutdownListener
|
||||
filler BarFiller
|
||||
extender extenderFunc
|
||||
renderReq chan<- time.Time
|
||||
waitBar *Bar // key for (*pState).queueBars
|
||||
id int
|
||||
priority int
|
||||
reqWidth int
|
||||
shutdown int
|
||||
total int64
|
||||
current int64
|
||||
refill int64
|
||||
trimSpace bool
|
||||
aborted bool
|
||||
triggerComplete bool
|
||||
rmOnComplete bool
|
||||
noPop bool
|
||||
autoRefresh bool
|
||||
buffers [3]*bytes.Buffer
|
||||
decorators [2][]decor.Decorator
|
||||
ewmaDecorators []decor.EwmaDecorator
|
||||
filler BarFiller
|
||||
extender extenderFunc
|
||||
renderReq chan<- time.Time
|
||||
waitBar *Bar // key for (*pState).queueBars
|
||||
}
|
||||
|
||||
type renderFrame struct {
|
||||
@@ -158,21 +156,25 @@ func (b *Bar) SetRefill(amount int64) {
|
||||
}
|
||||
}
|
||||
|
||||
// TraverseDecorators traverses all available decorators and calls cb func on each.
|
||||
// TraverseDecorators traverses available decorators and calls cb func
|
||||
// on each in a new goroutine. Decorators implementing decor.Wrapper
|
||||
// interface are unwrapped first.
|
||||
func (b *Bar) TraverseDecorators(cb func(decor.Decorator)) {
|
||||
iter := make(chan decor.Decorator)
|
||||
select {
|
||||
case b.operateState <- func(s *bState) {
|
||||
var wg sync.WaitGroup
|
||||
for _, decorators := range s.decorators {
|
||||
wg.Add(len(decorators))
|
||||
for _, d := range decorators {
|
||||
iter <- d
|
||||
d := d
|
||||
go func() {
|
||||
cb(unwrap(d))
|
||||
wg.Done()
|
||||
}()
|
||||
}
|
||||
}
|
||||
close(iter)
|
||||
wg.Wait()
|
||||
}:
|
||||
for d := range iter {
|
||||
cb(unwrap(d))
|
||||
}
|
||||
case <-b.ctx.Done():
|
||||
}
|
||||
}
|
||||
@@ -239,31 +241,6 @@ func (b *Bar) SetCurrent(current int64) {
|
||||
}
|
||||
}
|
||||
|
||||
// EwmaSetCurrent sets progress' current to an arbitrary value and updates
|
||||
// EWMA based decorators by dur of a single iteration.
|
||||
func (b *Bar) EwmaSetCurrent(current int64, iterDur time.Duration) {
|
||||
if current < 0 {
|
||||
return
|
||||
}
|
||||
result := make(chan *sync.WaitGroup)
|
||||
select {
|
||||
case b.operateState <- func(s *bState) {
|
||||
n := current - s.current
|
||||
s.current = current
|
||||
if s.triggerComplete && s.current >= s.total {
|
||||
s.current = s.total
|
||||
s.triggerCompletion(b)
|
||||
}
|
||||
var wg sync.WaitGroup
|
||||
s.decoratorEwmaUpdate(n, iterDur, &wg)
|
||||
result <- &wg
|
||||
}:
|
||||
wg := <-result
|
||||
wg.Wait()
|
||||
case <-b.ctx.Done():
|
||||
}
|
||||
}
|
||||
|
||||
// Increment is a shorthand for b.IncrInt64(1).
|
||||
func (b *Bar) Increment() {
|
||||
b.IncrInt64(1)
|
||||
@@ -301,38 +278,67 @@ func (b *Bar) EwmaIncrBy(n int, iterDur time.Duration) {
|
||||
// EwmaIncrInt64 increments progress by amount of n and updates EWMA based
|
||||
// decorators by dur of a single iteration.
|
||||
func (b *Bar) EwmaIncrInt64(n int64, iterDur time.Duration) {
|
||||
result := make(chan *sync.WaitGroup)
|
||||
select {
|
||||
case b.operateState <- func(s *bState) {
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(len(s.ewmaDecorators))
|
||||
for _, d := range s.ewmaDecorators {
|
||||
d := d
|
||||
go func() {
|
||||
d.EwmaUpdate(n, iterDur)
|
||||
wg.Done()
|
||||
}()
|
||||
}
|
||||
s.current += n
|
||||
if s.triggerComplete && s.current >= s.total {
|
||||
s.current = s.total
|
||||
s.triggerCompletion(b)
|
||||
}
|
||||
var wg sync.WaitGroup
|
||||
s.decoratorEwmaUpdate(n, iterDur, &wg)
|
||||
result <- &wg
|
||||
}:
|
||||
wg := <-result
|
||||
wg.Wait()
|
||||
}:
|
||||
case <-b.ctx.Done():
|
||||
}
|
||||
}
|
||||
|
||||
// DecoratorAverageAdjust adjusts all average based decorators. Call
|
||||
// if you need to adjust start time of all average based decorators
|
||||
// or after progress resume.
|
||||
func (b *Bar) DecoratorAverageAdjust(start time.Time) {
|
||||
// EwmaSetCurrent sets progress' current to an arbitrary value and updates
|
||||
// EWMA based decorators by dur of a single iteration.
|
||||
func (b *Bar) EwmaSetCurrent(current int64, iterDur time.Duration) {
|
||||
if current < 0 {
|
||||
return
|
||||
}
|
||||
select {
|
||||
case b.operateState <- func(s *bState) {
|
||||
for _, d := range s.averageDecorators {
|
||||
d.AverageAdjust(start)
|
||||
n := current - s.current
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(len(s.ewmaDecorators))
|
||||
for _, d := range s.ewmaDecorators {
|
||||
d := d
|
||||
go func() {
|
||||
d.EwmaUpdate(n, iterDur)
|
||||
wg.Done()
|
||||
}()
|
||||
}
|
||||
s.current = current
|
||||
if s.triggerComplete && s.current >= s.total {
|
||||
s.current = s.total
|
||||
s.triggerCompletion(b)
|
||||
}
|
||||
wg.Wait()
|
||||
}:
|
||||
case <-b.ctx.Done():
|
||||
}
|
||||
}
|
||||
|
||||
// DecoratorAverageAdjust adjusts decorators implementing decor.AverageDecorator interface.
|
||||
// Call if there is need to set start time after decorators have been constructed.
|
||||
func (b *Bar) DecoratorAverageAdjust(start time.Time) {
|
||||
b.TraverseDecorators(func(d decor.Decorator) {
|
||||
if d, ok := d.(decor.AverageDecorator); ok {
|
||||
d.AverageAdjust(start)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// SetPriority changes bar's order among multiple bars. Zero is highest
|
||||
// priority, i.e. bar will be on top. If you don't need to set priority
|
||||
// dynamically, better use BarPriority option.
|
||||
@@ -396,18 +402,28 @@ func (b *Bar) Wait() {
|
||||
}
|
||||
|
||||
func (b *Bar) serve(bs *bState) {
|
||||
decoratorsOnShutdown := func(decorators []decor.Decorator) {
|
||||
for _, d := range decorators {
|
||||
if d, ok := unwrap(d).(decor.ShutdownListener); ok {
|
||||
b.container.bwg.Add(1)
|
||||
go func() {
|
||||
d.OnShutdown()
|
||||
b.container.bwg.Done()
|
||||
}()
|
||||
}
|
||||
}
|
||||
}
|
||||
for {
|
||||
select {
|
||||
case op := <-b.operateState:
|
||||
op(bs)
|
||||
case <-b.ctx.Done():
|
||||
shutdownListeners := bs.shutdownListeners
|
||||
decoratorsOnShutdown(bs.decorators[0])
|
||||
decoratorsOnShutdown(bs.decorators[1])
|
||||
// bar can be aborted by canceling parent ctx without calling b.Abort
|
||||
bs.aborted = !bs.completed()
|
||||
b.bs = bs
|
||||
close(b.bsOk)
|
||||
for _, d := range shutdownListeners {
|
||||
d.OnShutdown()
|
||||
}
|
||||
b.container.bwg.Done()
|
||||
return
|
||||
}
|
||||
@@ -549,18 +565,11 @@ func (s *bState) wSyncTable() (table syncTable) {
|
||||
return table
|
||||
}
|
||||
|
||||
func (s *bState) sortDecorators(decorators []decor.Decorator) {
|
||||
func (s *bState) populateEwmaDecorators(decorators []decor.Decorator) {
|
||||
for _, d := range decorators {
|
||||
d := unwrap(d)
|
||||
if d, ok := d.(decor.AverageDecorator); ok {
|
||||
s.averageDecorators = append(s.averageDecorators, d)
|
||||
}
|
||||
if d, ok := d.(decor.EwmaDecorator); ok {
|
||||
if d, ok := unwrap(d).(decor.EwmaDecorator); ok {
|
||||
s.ewmaDecorators = append(s.ewmaDecorators, d)
|
||||
}
|
||||
if d, ok := d.(decor.ShutdownListener); ok {
|
||||
s.shutdownListeners = append(s.shutdownListeners, d)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -580,17 +589,6 @@ func (s bState) completed() bool {
|
||||
return s.triggerComplete && s.current == s.total
|
||||
}
|
||||
|
||||
func (s bState) decoratorEwmaUpdate(n int64, dur time.Duration, wg *sync.WaitGroup) {
|
||||
wg.Add(len(s.ewmaDecorators))
|
||||
for _, d := range s.ewmaDecorators {
|
||||
d := d
|
||||
go func() {
|
||||
d.EwmaUpdate(n, dur)
|
||||
wg.Done()
|
||||
}()
|
||||
}
|
||||
}
|
||||
|
||||
func (s bState) newStatistics(tw int) decor.Statistics {
|
||||
return decor.Statistics{
|
||||
AvailableWidth: tw,
|
||||
|
||||
20
vendor/github.com/vbauerster/mpb/v8/bar_filler_bar.go
generated
vendored
20
vendor/github.com/vbauerster/mpb/v8/bar_filler_bar.go
generated
vendored
@@ -50,13 +50,13 @@ type flushSection struct {
|
||||
}
|
||||
|
||||
type bFiller struct {
|
||||
components [components]component
|
||||
meta [components]func(io.Writer, []byte) error
|
||||
flush func(io.Writer, ...flushSection) error
|
||||
tipOnComplete bool
|
||||
tip struct {
|
||||
frames []component
|
||||
count uint
|
||||
components [components]component
|
||||
meta [components]func(io.Writer, []byte) error
|
||||
flush func(io.Writer, ...flushSection) error
|
||||
tip struct {
|
||||
onComplete bool
|
||||
count uint
|
||||
frames []component
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,8 +155,7 @@ func (s barStyle) Reverse() BarStyleComposer {
|
||||
|
||||
func (s barStyle) Build() BarFiller {
|
||||
bf := &bFiller{
|
||||
meta: s.metaFuncs,
|
||||
tipOnComplete: s.tipOnComplete,
|
||||
meta: s.metaFuncs,
|
||||
}
|
||||
bf.components[iLbound] = component{
|
||||
width: runewidth.StringWidth(s.style[iLbound]),
|
||||
@@ -178,6 +177,7 @@ func (s barStyle) Build() BarFiller {
|
||||
width: runewidth.StringWidth(s.style[iPadding]),
|
||||
bytes: []byte(s.style[iPadding]),
|
||||
}
|
||||
bf.tip.onComplete = s.tipOnComplete
|
||||
bf.tip.frames = make([]component, len(s.tipFrames))
|
||||
for i, t := range s.tipFrames {
|
||||
bf.tip.frames[i] = component{
|
||||
@@ -236,7 +236,7 @@ func (s *bFiller) Fill(w io.Writer, stat decor.Statistics) error {
|
||||
curWidth := int(internal.PercentageRound(stat.Total, stat.Current, uint(width)))
|
||||
|
||||
if curWidth != 0 {
|
||||
if !stat.Completed || s.tipOnComplete {
|
||||
if !stat.Completed || s.tip.onComplete {
|
||||
tip = s.tip.frames[s.tip.count%uint(len(s.tip.frames))]
|
||||
s.tip.count++
|
||||
fillCount += tip.width
|
||||
|
||||
4
vendor/github.com/vbauerster/mpb/v8/bar_option.go
generated
vendored
4
vendor/github.com/vbauerster/mpb/v8/bar_option.go
generated
vendored
@@ -24,7 +24,7 @@ func inspect(decorators []decor.Decorator) (dest []decor.Decorator) {
|
||||
func PrependDecorators(decorators ...decor.Decorator) BarOption {
|
||||
decorators = inspect(decorators)
|
||||
return func(s *bState) {
|
||||
s.sortDecorators(decorators)
|
||||
s.populateEwmaDecorators(decorators)
|
||||
s.decorators[0] = decorators
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ func PrependDecorators(decorators ...decor.Decorator) BarOption {
|
||||
func AppendDecorators(decorators ...decor.Decorator) BarOption {
|
||||
decorators = inspect(decorators)
|
||||
return func(s *bState) {
|
||||
s.sortDecorators(decorators)
|
||||
s.populateEwmaDecorators(decorators)
|
||||
s.decorators[1] = decorators
|
||||
}
|
||||
}
|
||||
|
||||
13
vendor/github.com/vbauerster/mpb/v8/decor/eta.go
generated
vendored
13
vendor/github.com/vbauerster/mpb/v8/decor/eta.go
generated
vendored
@@ -44,7 +44,7 @@ func EwmaNormalizedETA(style TimeStyle, age float64, normalizer TimeNormalizer,
|
||||
} else {
|
||||
average = ewma.NewMovingAverage(age)
|
||||
}
|
||||
return MovingAverageETA(style, NewThreadSafeMovingAverage(average), normalizer, wcc...)
|
||||
return MovingAverageETA(style, average, normalizer, wcc...)
|
||||
}
|
||||
|
||||
// MovingAverageETA decorator relies on MovingAverage implementation to calculate its average.
|
||||
@@ -86,7 +86,6 @@ func (d *movingAverageETA) Decor(s Statistics) (string, int) {
|
||||
return d.Format(d.producer(remaining))
|
||||
}
|
||||
|
||||
// EwmaUpdate is called concurrently with (d *movingAverageETA).Decor
|
||||
func (d *movingAverageETA) EwmaUpdate(n int64, dur time.Duration) {
|
||||
if n <= 0 {
|
||||
d.zDur += dur
|
||||
@@ -165,7 +164,10 @@ func MaxTolerateTimeNormalizer(maxTolerate time.Duration) TimeNormalizer {
|
||||
}
|
||||
normalized -= time.Since(lastCall)
|
||||
lastCall = time.Now()
|
||||
return normalized
|
||||
if normalized > 0 {
|
||||
return normalized
|
||||
}
|
||||
return remaining
|
||||
})
|
||||
}
|
||||
|
||||
@@ -184,7 +186,10 @@ func FixedIntervalTimeNormalizer(updInterval int) TimeNormalizer {
|
||||
count--
|
||||
normalized -= time.Since(lastCall)
|
||||
lastCall = time.Now()
|
||||
return normalized
|
||||
if normalized > 0 {
|
||||
return normalized
|
||||
}
|
||||
return remaining
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
2
vendor/github.com/vbauerster/mpb/v8/decor/moving_average.go
generated
vendored
2
vendor/github.com/vbauerster/mpb/v8/decor/moving_average.go
generated
vendored
@@ -70,5 +70,5 @@ func (s *medianWindow) Set(value float64) {
|
||||
|
||||
// NewMedian is fixed last 3 samples median MovingAverage.
|
||||
func NewMedian() ewma.MovingAverage {
|
||||
return NewThreadSafeMovingAverage(new(medianWindow))
|
||||
return new(medianWindow)
|
||||
}
|
||||
|
||||
3
vendor/github.com/vbauerster/mpb/v8/decor/speed.go
generated
vendored
3
vendor/github.com/vbauerster/mpb/v8/decor/speed.go
generated
vendored
@@ -46,7 +46,7 @@ func EwmaSpeed(unit interface{}, format string, age float64, wcc ...WC) Decorato
|
||||
} else {
|
||||
average = ewma.NewMovingAverage(age)
|
||||
}
|
||||
return MovingAverageSpeed(unit, format, NewThreadSafeMovingAverage(average), wcc...)
|
||||
return MovingAverageSpeed(unit, format, average, wcc...)
|
||||
}
|
||||
|
||||
// MovingAverageSpeed decorator relies on MovingAverage implementation
|
||||
@@ -93,7 +93,6 @@ func (d *movingAverageSpeed) Decor(_ Statistics) (string, int) {
|
||||
return d.Format(str)
|
||||
}
|
||||
|
||||
// EwmaUpdate is called concurrently with (d *movingAverageSpeed).Decor
|
||||
func (d *movingAverageSpeed) EwmaUpdate(n int64, dur time.Duration) {
|
||||
if n <= 0 {
|
||||
d.zDur += dur
|
||||
|
||||
Reference in New Issue
Block a user