initialize (*bState).refreshCh
Vladimir Bauer
3 years ago
| 51 | 51 |
filler BarFiller
|
| 52 | 52 |
middleware func(BarFiller) BarFiller
|
| 53 | 53 |
extender extenderFunc
|
|
54 |
refreshCh chan interface{}
|
| 54 | 55 |
|
| 55 | 56 |
wait struct {
|
| 56 | 57 |
bar *Bar // key for (*pState).queueBars
|
|
| 183 | 184 |
if s.current >= s.total {
|
| 184 | 185 |
s.current = s.total
|
| 185 | 186 |
s.completed = true
|
| 186 | |
go b.forceRefresh()
|
|
187 |
go b.forceRefresh(s.refreshCh)
|
| 187 | 188 |
} else {
|
| 188 | 189 |
s.triggerComplete = true
|
| 189 | 190 |
}
|
|
| 211 | 212 |
if triggerCompleteNow {
|
| 212 | 213 |
s.current = s.total
|
| 213 | 214 |
s.completed = true
|
| 214 | |
go b.forceRefresh()
|
|
215 |
go b.forceRefresh(s.refreshCh)
|
| 215 | 216 |
}
|
| 216 | 217 |
}:
|
| 217 | 218 |
case <-b.done:
|
|
| 228 | 229 |
if s.triggerComplete && s.current >= s.total {
|
| 229 | 230 |
s.current = s.total
|
| 230 | 231 |
s.completed = true
|
| 231 | |
go b.forceRefresh()
|
|
232 |
go b.forceRefresh(s.refreshCh)
|
| 232 | 233 |
}
|
| 233 | 234 |
}:
|
| 234 | 235 |
case <-b.done:
|
|
| 257 | 258 |
if s.triggerComplete && s.current >= s.total {
|
| 258 | 259 |
s.current = s.total
|
| 259 | 260 |
s.completed = true
|
| 260 | |
go b.forceRefresh()
|
|
261 |
go b.forceRefresh(s.refreshCh)
|
| 261 | 262 |
}
|
| 262 | 263 |
}:
|
| 263 | 264 |
case <-b.done:
|
|
| 317 | 318 |
}
|
| 318 | 319 |
s.aborted = true
|
| 319 | 320 |
s.dropOnComplete = drop
|
| 320 | |
go b.forceRefresh()
|
|
321 |
go b.forceRefresh(s.refreshCh)
|
| 321 | 322 |
}:
|
| 322 | 323 |
case <-b.done:
|
| 323 | 324 |
}
|
|
| 402 | 403 |
}
|
| 403 | 404 |
}
|
| 404 | 405 |
|
| 405 | |
func (b *Bar) forceRefresh() {
|
|
406 |
func (b *Bar) forceRefresh(refreshCh chan interface{}) {
|
| 406 | 407 |
var anyOtherRunning bool
|
| 407 | 408 |
b.container.traverseBars(func(bar *Bar) bool {
|
| 408 | 409 |
anyOtherRunning = b != bar && bar.IsRunning()
|
|
| 411 | 412 |
if !anyOtherRunning {
|
| 412 | 413 |
for {
|
| 413 | 414 |
select {
|
| 414 | |
case b.container.refreshCh <- time.Now():
|
|
415 |
case refreshCh <- time.Now():
|
| 415 | 416 |
time.Sleep(prr)
|
| 416 | 417 |
case <-b.done:
|
| 417 | 418 |
return
|
| 426 | 426 |
|
| 427 | 427 |
func (s *pState) makeBarState(total int64, filler BarFiller, options ...BarOption) *bState {
|
| 428 | 428 |
bs := &bState{
|
| 429 | |
id: s.idCount,
|
| 430 | |
priority: s.idCount,
|
| 431 | |
reqWidth: s.reqWidth,
|
| 432 | |
total: total,
|
| 433 | |
filler: filler,
|
|
429 |
id: s.idCount,
|
|
430 |
priority: s.idCount,
|
|
431 |
reqWidth: s.reqWidth,
|
|
432 |
total: total,
|
|
433 |
filler: filler,
|
|
434 |
refreshCh: s.externalRefresh,
|
| 434 | 435 |
}
|
| 435 | 436 |
|
| 436 | 437 |
if total > 0 {
|