vendor mpb@v7.1.4

Fixes a race condition leading to a deadlock.

Thanks to @mtrmac and @vbauerster for fixing the issue!

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
Valentin Rothberg
2021-09-09 14:19:21 +02:00
parent 32eaf347e1
commit 78c5a47fc9
61 changed files with 96 additions and 206 deletions

View File

@ -268,32 +268,32 @@ func (b *Bar) SetPriority(priority int) {
// if bar is already in complete state. If drop is true bar will be
// removed as well.
func (b *Bar) Abort(drop bool) {
if drop {
b.container.dropBar(b) // It is safe to call this multiple times with the same bar
}
select {
case b.operateState <- func(s *bState) {
if s.completed == true {
return
}
if drop {
b.cancel()
return
}
go func() {
var uncompleted int
b.container.traverseBars(func(bar *Bar) bool {
if b != bar && !bar.Completed() {
uncompleted++
return false
go b.container.dropBar(b)
} else {
go func() {
var uncompleted int
b.container.traverseBars(func(bar *Bar) bool {
if b != bar && !bar.Completed() {
uncompleted++
return false
}
return true
})
if uncompleted == 0 {
select {
case b.container.refreshCh <- time.Now():
case <-b.container.done:
}
}
return true
})
if uncompleted == 0 {
b.container.refreshCh <- time.Now()
}
b.cancel()
}()
}()
}
b.cancel()
}:
<-b.done
case <-b.done:

View File

@ -4,7 +4,7 @@ require (
github.com/VividCortex/ewma v1.2.0
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d
github.com/mattn/go-runewidth v0.0.13
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e
golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34
)
go 1.14

View File

@ -6,5 +6,5 @@ github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4
github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e h1:WUoyKPm6nCo1BnNUvPGnFG3T5DUVem42yDJZZ4CNxMA=
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34 h1:GkvMjFtXUmahfDtashnc1mnrCtuBVcwse5QV2lUk/tI=
golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=