fetch: encode FetchTasklet's cross-thread ownership in the type system - #31745
Open
alii wants to merge 20 commits into
Open
fetch: encode FetchTasklet's cross-thread ownership in the type system#31745alii wants to merge 20 commits into
alii wants to merge 20 commits into
Claude / Claude Code Review
completed
Jun 4, 2026 in 19m 16s
Code review found 1 potential issue
Found 5 candidates, confirmed 1. See review comments for details.
Details
| Severity | Count |
|---|---|
| 🔴 Important | 0 |
| 🟡 Nit | 1 |
| 🟣 Pre-existing | 0 |
| Severity | File:Line | Issue |
|---|---|---|
| 🟡 Nit | src/http/HTTPThread.rs:1078-1082 |
callback's is_shutting_down branch doesn't balance sink/drain refs |
Annotations
Check warning on line 1082 in src/http/HTTPThread.rs
claude / Claude Code Review
callback's is_shutting_down branch doesn't balance sink/drain refs
`release_at_shutdown` now balances `sink_ref_held` / `queued_drain_tasks`, but the parallel shutdown branch in `FetchTasklet::callback` (FetchTasklet.rs:2608–2618, `is_done` path) still releases only the two baseline refs. If a streaming-upload request's final callback fires in the window between `is_shutting_down` flipping true and `SHUTDOWN_REQUESTED` being observed (up to ~10s — `terminate_all_workers_and_wait(10_000)` runs in between), `on_async_http_callback_raw` removes the entry from `in_
Loading