Codebase list golang-github-vbauerster-mpb / 93ca09f
initialize (*bState).refreshCh Vladimir Bauer 3 years ago
2 changed file(s) with 14 addition(s) and 12 deletion(s). Raw diff Collapse all Expand all
5151 filler BarFiller
5252 middleware func(BarFiller) BarFiller
5353 extender extenderFunc
54 refreshCh chan interface{}
5455
5556 wait struct {
5657 bar *Bar // key for (*pState).queueBars
183184 if s.current >= s.total {
184185 s.current = s.total
185186 s.completed = true
186 go b.forceRefresh()
187 go b.forceRefresh(s.refreshCh)
187188 } else {
188189 s.triggerComplete = true
189190 }
211212 if triggerCompleteNow {
212213 s.current = s.total
213214 s.completed = true
214 go b.forceRefresh()
215 go b.forceRefresh(s.refreshCh)
215216 }
216217 }:
217218 case <-b.done:
228229 if s.triggerComplete && s.current >= s.total {
229230 s.current = s.total
230231 s.completed = true
231 go b.forceRefresh()
232 go b.forceRefresh(s.refreshCh)
232233 }
233234 }:
234235 case <-b.done:
257258 if s.triggerComplete && s.current >= s.total {
258259 s.current = s.total
259260 s.completed = true
260 go b.forceRefresh()
261 go b.forceRefresh(s.refreshCh)
261262 }
262263 }:
263264 case <-b.done:
317318 }
318319 s.aborted = true
319320 s.dropOnComplete = drop
320 go b.forceRefresh()
321 go b.forceRefresh(s.refreshCh)
321322 }:
322323 case <-b.done:
323324 }
402403 }
403404 }
404405
405 func (b *Bar) forceRefresh() {
406 func (b *Bar) forceRefresh(refreshCh chan interface{}) {
406407 var anyOtherRunning bool
407408 b.container.traverseBars(func(bar *Bar) bool {
408409 anyOtherRunning = b != bar && bar.IsRunning()
411412 if !anyOtherRunning {
412413 for {
413414 select {
414 case b.container.refreshCh <- time.Now():
415 case refreshCh <- time.Now():
415416 time.Sleep(prr)
416417 case <-b.done:
417418 return
426426
427427 func (s *pState) makeBarState(total int64, filler BarFiller, options ...BarOption) *bState {
428428 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,
434435 }
435436
436437 if total > 0 {