make bar.isRunning public
Vladimir Bauer
3 years ago
| 38 | 38 |
defer wg.Done()
|
| 39 | 39 |
rng := rand.New(rand.NewSource(time.Now().UnixNano()))
|
| 40 | 40 |
max := 100 * time.Millisecond
|
| 41 | |
for !bar.Completed() {
|
|
41 |
for bar.IsRunning() {
|
| 42 | 42 |
// start variable is solely for EWMA calculation
|
| 43 | 43 |
// EWMA's unit of measure is an iteration's duration
|
| 44 | 44 |
start := time.Now()
|
| 40 | 40 |
defer wg.Done()
|
| 41 | 41 |
rng := rand.New(rand.NewSource(time.Now().UnixNano()))
|
| 42 | 42 |
max := 100 * time.Millisecond
|
| 43 | |
for i := 0; !bar.Completed(); i++ {
|
|
43 |
for i := 0; bar.IsRunning(); i++ {
|
| 44 | 44 |
if bar.ID() == 2 && i >= 42 {
|
| 45 | 45 |
bar.Abort(false)
|
| 46 | 46 |
}
|
| 417 | 417 |
func (b *Bar) forceRefresh() {
|
| 418 | 418 |
var anyOtherRunning bool
|
| 419 | 419 |
b.container.traverseBars(func(bar *Bar) bool {
|
| 420 | |
anyOtherRunning = b != bar && bar.isRunning()
|
|
420 |
anyOtherRunning = b != bar && bar.IsRunning()
|
| 421 | 421 |
return !anyOtherRunning
|
| 422 | 422 |
})
|
| 423 | 423 |
if !anyOtherRunning {
|
|
| 432 | 432 |
}
|
| 433 | 433 |
}
|
| 434 | 434 |
|
| 435 | |
func (b *Bar) isRunning() bool {
|
|
435 |
// IsRunning reports whether the bar is running, i.e. not yet completed
|
|
436 |
// and not yet aborted.
|
|
437 |
func (b *Bar) IsRunning() bool {
|
| 436 | 438 |
result := make(chan bool)
|
| 437 | 439 |
select {
|
| 438 | 440 |
case b.operateState <- func(s *bState) {
|