disable operateState and interceptIO on render error
Vladimir Bauer
2 years ago
| 263 | 263 | var err error |
| 264 | 264 | w := cwriter.New(io.Discard) |
| 265 | 265 | renderReq := s.renderReq |
| 266 | operateState := p.operateState | |
| 267 | interceptIO := p.interceptIO | |
| 266 | 268 | |
| 267 | 269 | for { |
| 268 | 270 | select { |
| 269 | case op := <-p.operateState: | |
| 270 | op(s) | |
| 271 | case fn := <-p.interceptIO: | |
| 272 | fn(w) | |
| 273 | 271 | case <-s.delayRC: |
| 274 | 272 | w, cw = cw, nil |
| 275 | 273 | s.delayRC = nil |
| 274 | case op := <-operateState: | |
| 275 | op(s) | |
| 276 | case fn := <-interceptIO: | |
| 277 | fn(w) | |
| 276 | 278 | case <-renderReq: |
| 277 | 279 | err = s.render(w) |
| 278 | 280 | if err != nil { |
| 287 | 289 | }() |
| 288 | 290 | p.cancel() // cancel all bars |
| 289 | 291 | renderReq = nil |
| 292 | operateState = nil | |
| 293 | interceptIO = nil | |
| 290 | 294 | } |
| 291 | 295 | case <-p.done: |
| 292 | 296 | if err != nil { |