Codebase list golang-github-vbauerster-mpb / 85c57cf
refactoring refreshCh to renderReq Vladimir Bauer 3 years ago
2 changed file(s) with 11 addition(s) and 11 deletion(s). Raw diff Collapse all Expand all
5151 buffers [3]*bytes.Buffer
5252 filler BarFiller
5353 extender extenderFunc
54 refreshCh chan time.Time
54 renderReq chan<- time.Time
5555 waitBar *Bar // key for (*pState).queueBars
5656 }
5757
455455 // Technically this call isn't required, but if refresh rate is set to
456456 // one hour for example and bar completes within a few minutes p.Wait()
457457 // will wait for one hour. This call helps to avoid unnecessary waiting.
458 go b.tryEarlyRefresh(s.refreshCh)
458 go b.tryEarlyRefresh(s.renderReq)
459459 } else {
460460 b.cancel()
461461 }
462462 }
463463
464 func (b *Bar) tryEarlyRefresh(refreshCh chan<- time.Time) {
464 func (b *Bar) tryEarlyRefresh(renderReq chan<- time.Time) {
465465 var anyOtherRunning bool
466466 b.container.traverseBars(func(bar *Bar) bool {
467467 anyOtherRunning = b != bar && bar.IsRunning()
470470 if !anyOtherRunning {
471471 for {
472472 select {
473 case refreshCh <- time.Now():
473 case renderReq <- time.Now():
474474 case <-b.done:
475475 return
476476 }
3535 ctx context.Context
3636 hm heapManager
3737 dropS, dropD chan struct{}
38 refreshCh chan time.Time
38 renderReq chan time.Time
3939 idCount int
4040 popPriority int
4141
6969 hm: make(heapManager),
7070 dropS: make(chan struct{}),
7171 dropD: make(chan struct{}),
72 refreshCh: make(chan time.Time),
72 renderReq: make(chan time.Time),
7373 refreshRate: defaultRefreshRate,
7474 popPriority: math.MinInt32,
7575 queueBars: make(map[*Bar]*Bar),
246246 op(s)
247247 case fn := <-p.interceptIO:
248248 fn(cw)
249 case <-s.refreshCh:
249 case <-s.renderReq:
250250 e := render()
251251 if e != nil {
252252 p.cancel() // cancel all bars
281281 for {
282282 select {
283283 case t := <-ticker.C:
284 s.refreshCh <- t
284 s.renderReq <- t
285285 case <-s.ctx.Done():
286286 close(done)
287287 return
294294 select {
295295 case x := <-s.manualRC:
296296 if t, ok := x.(time.Time); ok {
297 s.refreshCh <- t
297 s.renderReq <- t
298298 } else {
299 s.refreshCh <- time.Now()
299 s.renderReq <- time.Now()
300300 }
301301 case <-s.ctx.Done():
302302 close(done)
412412 reqWidth: s.reqWidth,
413413 total: total,
414414 filler: filler,
415 refreshCh: s.refreshCh,
415 renderReq: s.renderReq,
416416 autoRefresh: s.autoRefresh,
417417 }
418418