这个异步函数应刷新一个缓存项,而且不能阻塞无关请求。找出两个并发问题。
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);
}