Codebase list golang-github-vbauerster-mpb / 3ca963c
Refactoring: renderedState to bFrame Vladimir Bauer 8 years ago
2 changed file(s) with 17 addition(s) and 17 deletion(s). Raw diff Collapse all Expand all
8282 char rune
8383 till int64
8484 }
85 renderedState struct {
85 bFrame struct {
8686 bar *Bar
8787 reader io.Reader
8888 toComplete bool
294294 }
295295 }
296296
297 func (b *Bar) render(debugOut io.Writer, tw int, pSyncer, aSyncer *widthSyncer) <-chan *renderedState {
298 ch := make(chan *renderedState, 1)
297 func (b *Bar) render(debugOut io.Writer, tw int, pSyncer, aSyncer *widthSyncer) <-chan *bFrame {
298 ch := make(chan *bFrame, 1)
299299
300300 go func() {
301301 select {
312312 r = strings.NewReader(fmt.Sprintf(fmt.Sprintf("%%.%ds\n", tw), s.panicMsg))
313313 fmt.Fprintf(debugOut, "%s %s bar id %02d %v\n", "[mpb]", time.Now(), s.id, s.panicMsg)
314314 }
315 ch <- &renderedState{b, r, s.toComplete}
315 ch <- &bFrame{b, r, s.toComplete}
316316 }()
317317 r = s.draw(tw, pSyncer, aSyncer)
318318 }:
324324 } else {
325325 r = s.draw(tw, pSyncer, aSyncer)
326326 }
327 ch <- &renderedState{b, r, s.toComplete}
327 ch <- &bFrame{b, r, s.toComplete}
328328 }
329329 }()
330330
209209 })
210210
211211 for _, ch := range s.renderByPriority(tw, pSyncer, aSyncer) {
212 rs := <-ch
213 _, err = s.cw.ReadFrom(rs.reader)
214 if !rs.bar.completed && rs.toComplete {
215 rs.bar.completed = true
216 if rs.bar.removeOnComplete {
217 s.heapUpdated = heap.Remove(s.bHeap, rs.bar.index) != nil
218 }
219 if replacementBar, ok := s.waitBars[rs.bar]; ok {
212 bf := <-ch
213 _, err = s.cw.ReadFrom(bf.reader)
214 if !bf.bar.completed && bf.toComplete {
215 bf.bar.completed = true
216 if bf.bar.removeOnComplete {
217 s.heapUpdated = heap.Remove(s.bHeap, bf.bar.index) != nil
218 }
219 if replacementBar, ok := s.waitBars[bf.bar]; ok {
220220 heap.Push(s.bHeap, replacementBar)
221221 s.heapUpdated = true
222 delete(s.waitBars, rs.bar)
222 delete(s.waitBars, bf.bar)
223223 }
224224 defer func() {
225 s.shutdownPending = append(s.shutdownPending, rs.bar)
225 s.shutdownPending = append(s.shutdownPending, bf.bar)
226226 }()
227227 }
228228 }
242242 return
243243 }
244244
245 func (s *pState) renderByPriority(tw int, pSyncer, aSyncer *widthSyncer) []<-chan *renderedState {
246 pp := make([]<-chan *renderedState, 0, s.bHeap.Len())
245 func (s *pState) renderByPriority(tw int, pSyncer, aSyncer *widthSyncer) []<-chan *bFrame {
246 pp := make([]<-chan *bFrame, 0, s.bHeap.Len())
247247 for s.bHeap.Len() > 0 {
248248 b := heap.Pop(s.bHeap).(*Bar)
249249 defer heap.Push(s.bHeap, b)