limit frame.shutdown path
Vladimir Bauer
3 years ago
| 61 | 61 | shutdown int |
| 62 | 62 | rmOnComplete bool |
| 63 | 63 | noPop bool |
| 64 | done bool | |
| 64 | 65 | err error |
| 65 | 66 | } |
| 66 | 67 | |
| 414 | 415 | } |
| 415 | 416 | |
| 416 | 417 | func (b *Bar) render(tw int) { |
| 418 | var done bool | |
| 417 | 419 | fn := func(s *bState) { |
| 418 | 420 | var rows []io.Reader |
| 419 | 421 | stat := newStatistics(tw, s) |
| 435 | 437 | shutdown: s.shutdown, |
| 436 | 438 | rmOnComplete: s.rmOnComplete, |
| 437 | 439 | noPop: s.noPop, |
| 440 | done: done, | |
| 438 | 441 | } |
| 439 | 442 | if s.completed || s.aborted { |
| 440 | 443 | // post increment makes sure OnComplete decorators are rendered |
| 445 | 448 | select { |
| 446 | 449 | case b.operateState <- fn: |
| 447 | 450 | case <-b.done: |
| 451 | done = true | |
| 448 | 452 | fn(b.bs) |
| 449 | 453 | } |
| 450 | 454 | } |