Commit 9bc6b44
authored
Fix race in ExpireAfter when item is removed or updated before expiration fires (#1076)
The expiration timer callback now checks that the item still exists and
still has a pending expiration before attempting removal. Prevents
InvalidOperationException when items are concurrently removed or updated
between when the expiration was scheduled and when it fires.
Also uses |= to accumulate expiration changes correctly.1 parent 8db4806 commit 9bc6b44
1 file changed
Lines changed: 13 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
169 | 176 | | |
170 | 177 | | |
171 | 178 | | |
| |||
273 | 280 | | |
274 | 281 | | |
275 | 282 | | |
276 | | - | |
| 283 | + | |
277 | 284 | | |
278 | 285 | | |
279 | 286 | | |
| |||
0 commit comments