frame.shutdown=true max 2 times
Vladimir Bauer
3 years ago
| 341 | 341 |
}()
|
| 342 | 342 |
}
|
| 343 | 343 |
}
|
| 344 | |
if frame.shutdown != 0 {
|
|
344 |
if frame.shutdown {
|
| 345 | 345 |
b.Wait() // waiting for b.done, so it's safe to read b.bs
|
| 346 | |
drop := b.bs.dropOnComplete
|
| 347 | 346 |
if qb, ok := s.queueBars[b]; ok {
|
| 348 | 347 |
delete(s.queueBars, b)
|
| 349 | 348 |
qb.priority = b.priority
|
| 350 | 349 |
s.pool = append(s.pool, qb)
|
| 351 | |
drop = true
|
| 352 | |
} else if s.popCompleted && !b.bs.noPop {
|
| 353 | |
switch frame.shutdown {
|
|
350 |
s.heapUpdated = true
|
|
351 |
continue
|
|
352 |
}
|
|
353 |
if s.popCompleted && !b.bs.noPop {
|
|
354 |
switch b.bs.shutdown++; b.bs.shutdown {
|
| 354 | 355 |
case 1:
|
| 355 | 356 |
b.priority = s.popPriority
|
| 356 | 357 |
s.popPriority++
|
| 357 | |
drop = false
|
| 358 | 358 |
default:
|
| 359 | |
if drop {
|
|
359 |
if b.bs.dropOnComplete {
|
| 360 | 360 |
popCount += usedRows
|
|
361 |
s.heapUpdated = true
|
|
362 |
continue
|
| 361 | 363 |
}
|
| 362 | 364 |
}
|
| 363 | |
}
|
| 364 | |
if drop {
|
|
365 |
} else if b.bs.dropOnComplete {
|
| 365 | 366 |
s.heapUpdated = true
|
| 366 | 367 |
continue
|
| 367 | 368 |
}
|