Codebase list golang-github-vbauerster-mpb / 5148841
case bar.done Vladimir Bauer 7 years ago
1 changed file(s) with 9 addition(s) and 9 deletion(s). Raw diff Collapse all Expand all
197197 }
198198 return
199199 }
200 if err := s.render(p.done, cw); err != nil {
200 if err := s.render(cw); err != nil {
201201 fmt.Fprintf(s.debugOut, "[mpb] %s %v\n", time.Now(), err)
202202 }
203203 }
204204 }
205205 }
206206
207 func (s *pState) render(done <-chan struct{}, cw *cwriter.Writer) error {
207 func (s *pState) render(cw *cwriter.Writer) error {
208208 if s.heapUpdated {
209209 s.updateSyncMatrix()
210210 s.heapUpdated = false
221221 go bar.render(s.debugOut, tw)
222222 }
223223
224 return s.flush(done, cw)
225 }
226
227 func (s *pState) flush(done <-chan struct{}, cw *cwriter.Writer) error {
224 return s.flush(cw)
225 }
226
227 func (s *pState) flush(cw *cwriter.Writer) error {
228228 var lineCount int
229229 for s.bHeap.Len() > 0 {
230230 bar := heap.Pop(s.bHeap).(*Bar)
231231 frame := <-bar.bFrameCh
232232 defer func() {
233233 if frame.toShutdown {
234 // force next refresh asap, without waiting for ticker
235234 go func() {
235 // force next refresh, so it will be triggered either by ticker or by
236 // this goroutine, whichever comes first
236237 select {
237238 case s.forceRefreshCh <- time.Now():
238 case <-done:
239 return
239 case <-bar.done:
240240 }
241241 }()
242242 // shutdown at next flush, in other words decrement underlying WaitGroup