Codebase list golang-github-vbauerster-mpb / 83659a7
refactoring: triggerComplete Vladimir Bauer 5 years ago
1 changed file(s) with 15 addition(s) and 16 deletion(s). Raw diff Collapse all Expand all
5353 lastN int64
5454 iterated bool
5555 trimSpace bool
56 toComplete bool
56 completed bool
5757 completeFlushed bool
58 ignoreComplete bool
58 triggerComplete bool
5959 dropOnComplete bool
6060 noPop bool
6161 aDecorators []decor.Decorator
158158
159159 // SetTotal sets total dynamically.
160160 // If total is less than or equal to zero it takes progress' current value.
161 // A complete flag enables or disables complete event on `current >= total`.
162 func (b *Bar) SetTotal(total int64, complete bool) {
163 select {
164 case b.operateState <- func(s *bState) {
165 s.ignoreComplete = !complete
161 func (b *Bar) SetTotal(total int64, triggerComplete bool) {
162 select {
163 case b.operateState <- func(s *bState) {
164 s.triggerComplete = triggerComplete
166165 if total <= 0 {
167166 s.total = s.current
168167 } else {
169168 s.total = total
170169 }
171 if !s.ignoreComplete && !s.toComplete {
170 if s.triggerComplete && !s.completed {
172171 s.current = s.total
173 s.toComplete = true
172 s.completed = true
174173 go b.refreshTillShutdown()
175174 }
176175 }:
186185 s.iterated = true
187186 s.lastN = current - s.current
188187 s.current = current
189 if !s.ignoreComplete && s.current >= s.total {
188 if s.triggerComplete && s.current >= s.total {
190189 s.current = s.total
191 s.toComplete = true
190 s.completed = true
192191 go b.refreshTillShutdown()
193192 }
194193 }:
213212 s.iterated = true
214213 s.lastN = n
215214 s.current += n
216 if !s.ignoreComplete && s.current >= s.total {
215 if s.triggerComplete && s.current >= s.total {
217216 s.current = s.total
218 s.toComplete = true
217 s.completed = true
219218 go b.refreshTillShutdown()
220219 }
221220 }:
279278 // Completed reports whether the bar is in completed state.
280279 func (b *Bar) Completed() bool {
281280 select {
282 case b.operateState <- func(s *bState) { b.completed <- s.toComplete }:
281 case b.operateState <- func(s *bState) { b.completed <- s.completed }:
283282 return <-b.completed
284283 case <-b.done:
285284 return true
321320 b.frameCh <- frame
322321 b.dlogger.Println(p)
323322 }
324 s.completeFlushed = s.toComplete
323 s.completeFlushed = s.completed
325324 }()
326325 frame, lines := s.extender(s.draw(stat), s.reqWidth, stat)
327326 b.extendedLines = lines
328 b.toShutdown = s.toComplete && !s.completeFlushed
327 b.toShutdown = s.completed && !s.completeFlushed
329328 b.frameCh <- frame
330329 }:
331330 case <-b.done: