Better complete check
Vladimir Bauer
8 years ago
| 304 | 304 | }() |
| 305 | 305 | result := make(chan state, 1) |
| 306 | 306 | select { |
| 307 | case b.ops <- func(s *state) { | |
| 308 | if s.completed { | |
| 307 | case b.ops <- func(s *state) { result <- *s }: | |
| 308 | st = <-result | |
| 309 | if st.completed { | |
| 309 | 310 | b.Complete() |
| 310 | 311 | } |
| 311 | result <- *s | |
| 312 | }: | |
| 313 | st = <-result | |
| 314 | 312 | case <-b.done: |
| 315 | 313 | st = b.cacheState |
| 316 | 314 | } |