Codebase list golang-github-vbauerster-mpb / c55e0f5
make rows once Vladimir Bauer 3 years ago
1 changed file(s) with 8 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
3838 heapUpdated bool
3939 pMatrix map[int][]chan int
4040 aMatrix map[int][]chan int
41 rows []io.Reader
4142
4243 // following are provided/overrided by user
4344 refreshRate time.Duration
6768 // method has been called.
6869 func NewWithContext(ctx context.Context, options ...ContainerOption) *Progress {
6970 s := &pState{
71 rows: make([]io.Reader, 32),
7072 refreshRate: defaultRefreshRate,
7173 popPriority: math.MinInt32,
7274 manualRefresh: make(chan interface{}),
326328
327329 func (s *pState) flush(wg *sync.WaitGroup, cw *cwriter.Writer, height int) error {
328330 var popCount int
329 rows := make([]io.Reader, 0, height)
330331 pool := make([]*Bar, 0, s.bHeap.Len())
332 s.rows = s.rows[:0]
331333
332334 for s.bHeap.Len() > 0 {
333335 b := heap.Pop(&s.bHeap).(*Bar)
338340 }
339341 var usedRows int
340342 for i := len(frame.rows) - 1; i >= 0; i-- {
341 if row := frame.rows[i]; len(rows) < height {
342 rows = append(rows, row)
343 if row := frame.rows[i]; len(s.rows) < height {
344 s.rows = append(s.rows, row)
343345 usedRows++
344346 } else {
345347 wg.Add(1)
388390 }()
389391 }
390392
391 for i := len(rows) - 1; i >= 0; i-- {
392 _, err := cw.ReadFrom(rows[i])
393 for i := len(s.rows) - 1; i >= 0; i-- {
394 _, err := cw.ReadFrom(s.rows[i])
393395 if err != nil {
394396 return err
395397 }
396398 }
397399
398 err := cw.Flush(len(rows) - popCount)
400 err := cw.Flush(len(s.rows) - popCount)
399401 return err
400402 }
401403