Commit db88524
committed
Fix scheduled explosion cleanup getting stuck (#475)
<!-- Macroscope's pull request summary starts here -->
<!-- Macroscope will only edit the content between these invisible markers, and the markers themselves will not be visible in the GitHub rendered markdown. -->
<!-- If you delete either of the start / end markers from your PR's description, Macroscope will append its summary at the bottom of the description. -->
### Prevent scheduled explosion cleanup from getting stuck by adding per-conversation expiration tasks and immediate cancellation in `ScheduledExplosionManager`
Add `_expirationTasks` with locking, schedule per-conversation expiration via `ScheduledExplosionManager.scheduleExpirationTask`, post `.conversationExpired` on expiry or immediately if past, and cancel all tasks in `deinit` and `cancelNotifications(for:)`. Include tests for expiry posting and rescan behavior.
#### 📍Where to Start
Start with `handleScheduledExplosion` in [ScheduledExplosionManager.swift](https://github.com/xmtplabs/convos-ios/pull/475/files#diff-02b035d174d75b0dde80ebc879a4bc253710f806fa9c6aae3f49b2f1a798abcb), then review `scheduleExpirationTask` and `cancelAllTasks`.
<!-- Macroscope's review summary starts here -->
<sup><a href="https://app.macroscope.com">Macroscope</a> summarized 106ede7.</sup>
<!-- Macroscope's review summary ends here -->
<!-- Macroscope's pull request summary ends here -->1 parent 2afc1b5 commit db88524
2 files changed
Lines changed: 122 additions & 2 deletions
File tree
- ConvosCore
- Sources/ConvosCore/Storage/Workers
- Tests/ConvosCoreTests
Lines changed: 60 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| 41 | + | |
40 | 42 | | |
41 | 43 | | |
42 | 44 | | |
| |||
83 | 85 | | |
84 | 86 | | |
85 | 87 | | |
| 88 | + | |
| 89 | + | |
86 | 90 | | |
87 | 91 | | |
88 | 92 | | |
| |||
91 | 95 | | |
92 | 96 | | |
93 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
94 | 135 | | |
95 | 136 | | |
96 | 137 | | |
| |||
141 | 182 | | |
142 | 183 | | |
143 | 184 | | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
144 | 189 | | |
145 | 190 | | |
146 | 191 | | |
| |||
241 | 286 | | |
242 | 287 | | |
243 | 288 | | |
| 289 | + | |
| 290 | + | |
244 | 291 | | |
245 | 292 | | |
246 | 293 | | |
247 | 294 | | |
248 | 295 | | |
249 | 296 | | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
250 | 306 | | |
251 | 307 | | |
252 | 308 | | |
253 | 309 | | |
| 310 | + | |
| 311 | + | |
254 | 312 | | |
255 | 313 | | |
256 | 314 | | |
| |||
Lines changed: 62 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
170 | 232 | | |
171 | 233 | | |
172 | 234 | | |
| |||
0 commit comments