Commit 085d43c
committed
Explain why dlq reconciliation frees slots only for processing requests
Review question on the buildsignal reconciler: failRequest releases the queue
slot only for a request in processing, so does it need to widen that?
It does not. Processing is the only non-terminal state that can own a slot:
process claims the slot and CAS-marks accepted->processing, compensating its own
claim when that CAS does not land, and processing exits only to a terminal
outcome, which releases the slot itself. Releasing for accepted would decrement
for the common request that never claimed one, over-admitting against
MaxConcurrent. Say that where failRequest gates on the state, note at the
buildsignal call site that a build row implies processing-or-terminal, and pin
the intent on the accepted test case, which passes no queue expectations.1 parent 061bde0 commit 085d43c
3 files changed
Lines changed: 20 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
141 | 145 | | |
142 | 146 | | |
143 | 147 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
66 | 78 | | |
67 | 79 | | |
68 | 80 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
105 | 107 | | |
106 | 108 | | |
107 | 109 | | |
| |||
0 commit comments