找出异步缓存刷新里的 bug

来自 Rust 后端开发
Rust 1.98 高级 4分钟 找出 2处问题

这个异步函数应刷新一个缓存项,而且不能阻塞无关请求。找出两个并发问题。

Rust
use std::{collections::HashMap, sync::{Arc, Mutex}};

async fn refresh(cache: Arc<Mutex<HashMap<u64, String>>>, user_id: u64) {
    let mut entries = cache.lock().unwrap();
    entries.insert(user_id, "refreshing".to_string());
    let profile = fetch_profile(user_id).await;
    entries.insert(user_id, profile);
}
在试验场中打开
报告错误