fix for #100
Vladimir Bauer
4 years ago
| 273 | 273 | return |
| 274 | 274 | } |
| 275 | 275 | if drop { |
| 276 | b.container.dropBar(b) | |
| 277 | b.cancel() | |
| 278 | return | |
| 279 | } | |
| 280 | go func() { | |
| 281 | var uncompleted int | |
| 282 | b.container.traverseBars(func(bar *Bar) bool { | |
| 283 | if b != bar && !bar.Completed() { | |
| 284 | uncompleted++ | |
| 285 | return false | |
| 276 | go b.container.dropBar(b) | |
| 277 | } else { | |
| 278 | go func() { | |
| 279 | var uncompleted int | |
| 280 | b.container.traverseBars(func(bar *Bar) bool { | |
| 281 | if b != bar && !bar.Completed() { | |
| 282 | uncompleted++ | |
| 283 | return false | |
| 284 | } | |
| 285 | return true | |
| 286 | }) | |
| 287 | if uncompleted == 0 { | |
| 288 | select { | |
| 289 | case b.container.refreshCh <- time.Now(): | |
| 290 | case <-b.container.done: | |
| 291 | } | |
| 286 | 292 | } |
| 287 | return true | |
| 288 | }) | |
| 289 | if uncompleted == 0 { | |
| 290 | b.container.refreshCh <- time.Now() | |
| 291 | } | |
| 292 | b.cancel() | |
| 293 | }() | |
| 293 | }() | |
| 294 | } | |
| 295 | b.cancel() | |
| 294 | 296 | }: |
| 295 | 297 | <-b.done |
| 296 | 298 | case <-b.done: |