Merge pull request #21030 from containers/renovate/github.com-vbauerster-mpb-v8-8.x

Update module github.com/vbauerster/mpb/v8 to v8.7.1
This commit is contained in:
openshift-merge-bot[bot]
2023-12-19 12:24:30 +00:00
committed by GitHub
5 changed files with 61 additions and 42 deletions

2
go.mod
View File

@ -62,7 +62,7 @@ require (
github.com/stretchr/testify v1.8.4 github.com/stretchr/testify v1.8.4
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
github.com/ulikunitz/xz v0.5.11 github.com/ulikunitz/xz v0.5.11
github.com/vbauerster/mpb/v8 v8.7.0 github.com/vbauerster/mpb/v8 v8.7.1
github.com/vishvananda/netlink v1.2.1-beta.2 github.com/vishvananda/netlink v1.2.1-beta.2
go.etcd.io/bbolt v1.3.8 go.etcd.io/bbolt v1.3.8
golang.org/x/exp v0.0.0-20231006140011-7918f672742d golang.org/x/exp v0.0.0-20231006140011-7918f672742d

4
go.sum
View File

@ -1074,8 +1074,8 @@ github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN
github.com/vbatts/tar-split v0.11.2/go.mod h1:vV3ZuO2yWSVsz+pfFzDG/upWH1JhjOiEaWq6kXyQ3VI= github.com/vbatts/tar-split v0.11.2/go.mod h1:vV3ZuO2yWSVsz+pfFzDG/upWH1JhjOiEaWq6kXyQ3VI=
github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts= github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts=
github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk= github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk=
github.com/vbauerster/mpb/v8 v8.7.0 h1:n2LTGyol7qqNBcLQn8FL5Bga2O8CGF75OOYsJVFsfMg= github.com/vbauerster/mpb/v8 v8.7.1 h1:bQoSMMTFAg/gjsLrBYmO8gbRcZt7aDq6WI2IMa9BTqM=
github.com/vbauerster/mpb/v8 v8.7.0/go.mod h1:0RgdqeTpu6cDbdWeSaDvEvfgm9O598rBnRZ09HKaV0k= github.com/vbauerster/mpb/v8 v8.7.1/go.mod h1:fWgXcAu4W+0cBSUh4ZlaKJyC2KtgU27ZSTaiIk0QNsQ=
github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=

View File

@ -429,13 +429,11 @@ func (b *Bar) render(tw int) {
return return
} }
} }
frame := &renderFrame{ frame := &renderFrame{rows: rows}
rows: rows,
shutdown: s.shutdown,
rmOnComplete: s.rmOnComplete,
noPop: s.noPop,
}
if s.completed || s.aborted { if s.completed || s.aborted {
frame.shutdown = s.shutdown
frame.rmOnComplete = s.rmOnComplete
frame.noPop = s.noPop
// post increment makes sure OnComplete decorators are rendered // post increment makes sure OnComplete decorators are rendered
s.shutdown++ s.shutdown++
} }
@ -460,12 +458,15 @@ func (b *Bar) triggerCompletion(s *bState) {
} }
func (b *Bar) tryEarlyRefresh(renderReq chan<- time.Time) { func (b *Bar) tryEarlyRefresh(renderReq chan<- time.Time) {
var anyOtherRunning bool var otherRunning int
b.container.traverseBars(func(bar *Bar) bool { b.container.traverseBars(func(bar *Bar) bool {
anyOtherRunning = b != bar && bar.IsRunning() if b != bar && bar.IsRunning() {
return anyOtherRunning otherRunning++
return false // stop traverse
}
return true // continue traverse
}) })
if !anyOtherRunning { if otherRunning == 0 {
for { for {
select { select {
case renderReq <- time.Now(): case renderReq <- time.Now():

View File

@ -68,14 +68,17 @@ func NewWithContext(ctx context.Context, options ...ContainerOption) *Progress {
ctx = context.Background() ctx = context.Background()
} }
ctx, cancel := context.WithCancel(ctx) ctx, cancel := context.WithCancel(ctx)
delayRC := make(chan struct{}, 1)
delayRC <- struct{}{}
s := &pState{ s := &pState{
ctx: ctx, ctx: ctx,
hm: make(heapManager), hm: make(heapManager),
dropS: make(chan struct{}), dropS: make(chan struct{}),
dropD: make(chan struct{}), dropD: make(chan struct{}),
renderReq: make(chan time.Time), renderReq: make(chan time.Time),
refreshRate: defaultRefreshRate,
popPriority: math.MinInt32, popPriority: math.MinInt32,
refreshRate: defaultRefreshRate,
delayRC: delayRC,
queueBars: make(map[*Bar]*Bar), queueBars: make(map[*Bar]*Bar),
output: os.Stdout, output: os.Stdout,
debugOut: io.Discard, debugOut: io.Discard,
@ -191,7 +194,7 @@ func (p *Progress) traverseBars(cb func(b *Bar) bool) {
select { select {
case p.operateState <- func(s *pState) { s.hm.iter(iter, drop) }: case p.operateState <- func(s *pState) { s.hm.iter(iter, drop) }:
for b := range iter { for b := range iter {
if cb(b) { if !cb(b) {
close(drop) close(drop)
break break
} }
@ -258,34 +261,52 @@ func (p *Progress) Shutdown() {
func (p *Progress) serve(s *pState, cw *cwriter.Writer) { func (p *Progress) serve(s *pState, cw *cwriter.Writer) {
defer p.pwg.Done() defer p.pwg.Done()
render := func() error { return s.render(cw) }
var err error var err error
w := cwriter.New(io.Discard)
renderReq := s.renderReq
operateState := p.operateState
interceptIO := p.interceptIO
for { for {
select { select {
case op := <-p.operateState: case <-s.delayRC:
w, cw = cw, nil
s.delayRC = nil
case op := <-operateState:
op(s) op(s)
case fn := <-p.interceptIO: case fn := <-interceptIO:
fn(cw) fn(w)
case <-s.renderReq: case <-renderReq:
e := render() err = s.render(w)
if e != nil { if err != nil {
// (*pState).(autoRefreshListener|manualRefreshListener) may block
// if not launching following short lived goroutine
go func() {
for {
select {
case <-s.renderReq:
case <-p.done:
return
}
}
}()
p.cancel() // cancel all bars p.cancel() // cancel all bars
render = func() error { return nil } renderReq = nil
err = e operateState = nil
interceptIO = nil
} }
case <-p.done: case <-p.done:
update := make(chan bool)
for s.autoRefresh && err == nil {
s.hm.state(update)
if <-update {
err = render()
} else {
break
}
}
if err != nil { if err != nil {
_, _ = fmt.Fprintln(s.debugOut, err.Error()) _, _ = fmt.Fprintln(s.debugOut, err.Error())
} else if s.autoRefresh {
update := make(chan bool)
for i := 0; i == 0 || <-update; i++ {
if err := s.render(w); err != nil {
_, _ = fmt.Fprintln(s.debugOut, err.Error())
break
}
s.hm.state(update)
}
} }
s.hm.end(s.shutdownNotifier) s.hm.end(s.shutdownNotifier)
return return
@ -293,10 +314,7 @@ func (p *Progress) serve(s *pState, cw *cwriter.Writer) {
} }
} }
func (s pState) autoRefreshListener(done chan struct{}) { func (s *pState) autoRefreshListener(done chan struct{}) {
if s.delayRC != nil {
<-s.delayRC
}
ticker := time.NewTicker(s.refreshRate) ticker := time.NewTicker(s.refreshRate)
defer ticker.Stop() defer ticker.Stop()
for { for {
@ -310,7 +328,7 @@ func (s pState) autoRefreshListener(done chan struct{}) {
} }
} }
func (s pState) manualRefreshListener(done chan struct{}) { func (s *pState) manualRefreshListener(done chan struct{}) {
for { for {
select { select {
case x := <-s.manualRC: case x := <-s.manualRC:
@ -342,9 +360,9 @@ func (s *pState) render(cw *cwriter.Writer) (err error) {
if s.reqWidth > 0 { if s.reqWidth > 0 {
width = s.reqWidth width = s.reqWidth
} else { } else {
width = 100 width = 80
} }
height = 100 height = width
} }
for b := range iter { for b := range iter {
@ -420,7 +438,7 @@ func (s *pState) flush(cw *cwriter.Writer, height int) error {
return cw.Flush(len(rows) - popCount) return cw.Flush(len(rows) - popCount)
} }
func (s pState) push(wg *sync.WaitGroup, b *Bar, sync bool) { func (s *pState) push(wg *sync.WaitGroup, b *Bar, sync bool) {
s.hm.push(b, sync) s.hm.push(b, sync)
wg.Done() wg.Done()
} }

2
vendor/modules.txt vendored
View File

@ -1057,7 +1057,7 @@ github.com/ulikunitz/xz/lzma
github.com/vbatts/tar-split/archive/tar github.com/vbatts/tar-split/archive/tar
github.com/vbatts/tar-split/tar/asm github.com/vbatts/tar-split/tar/asm
github.com/vbatts/tar-split/tar/storage github.com/vbatts/tar-split/tar/storage
# github.com/vbauerster/mpb/v8 v8.7.0 # github.com/vbauerster/mpb/v8 v8.7.1
## explicit; go 1.17 ## explicit; go 1.17
github.com/vbauerster/mpb/v8 github.com/vbauerster/mpb/v8
github.com/vbauerster/mpb/v8/cwriter github.com/vbauerster/mpb/v8/cwriter