aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/vbauerster/mpb/v7/bar.go
diff options
context:
space:
mode:
authordependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2021-10-06 12:24:29 +0000
committerGitHub <noreply@github.com>2021-10-06 12:24:29 +0000
commit675d2d0c1a6370f4976a61c5506782e5d84f150b (patch)
treedeac9bf42a13238024982b22f263843744e79996 /vendor/github.com/vbauerster/mpb/v7/bar.go
parent8bcc086b1b9d8aa0ef3bb08d37542adf9de26ac5 (diff)
downloadpodman-675d2d0c1a6370f4976a61c5506782e5d84f150b.tar.gz
podman-675d2d0c1a6370f4976a61c5506782e5d84f150b.tar.bz2
podman-675d2d0c1a6370f4976a61c5506782e5d84f150b.zip
Bump github.com/containers/image/v5 from 5.16.0 to 5.16.1
Bumps [github.com/containers/image/v5](https://github.com/containers/image) from 5.16.0 to 5.16.1. - [Release notes](https://github.com/containers/image/releases) - [Commits](https://github.com/containers/image/compare/v5.16.0...v5.16.1) --- updated-dependencies: - dependency-name: github.com/containers/image/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Diffstat (limited to 'vendor/github.com/vbauerster/mpb/v7/bar.go')
-rw-r--r--vendor/github.com/vbauerster/mpb/v7/bar.go25
1 files changed, 14 insertions, 11 deletions
diff --git a/vendor/github.com/vbauerster/mpb/v7/bar.go b/vendor/github.com/vbauerster/mpb/v7/bar.go
index 22f608317..dabe1a475 100644
--- a/vendor/github.com/vbauerster/mpb/v7/bar.go
+++ b/vendor/github.com/vbauerster/mpb/v7/bar.go
@@ -268,15 +268,19 @@ 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) {
+ done := make(chan struct{})
select {
case b.operateState <- func(s *bState) {
if s.completed == true {
+ close(done)
return
}
- if drop {
- go b.container.dropBar(b)
- } else {
- go func() {
+ // container must be run during lifetime of this inner goroutine
+ // we control this by done channel declared above
+ go func() {
+ if drop {
+ b.container.dropBar(b)
+ } else {
var uncompleted int
b.container.traverseBars(func(bar *Bar) bool {
if b != bar && !bar.Completed() {
@@ -286,16 +290,15 @@ func (b *Bar) Abort(drop bool) {
return true
})
if uncompleted == 0 {
- select {
- case b.container.refreshCh <- time.Now():
- case <-b.container.done:
- }
+ b.container.refreshCh <- time.Now()
}
- }()
- }
+ }
+ close(done) // release hold of Abort
+ }()
b.cancel()
}:
- <-b.done
+ // guarantee: container is alive during lifetime of this hold
+ <-done
case <-b.done:
}
}