This async function should refresh one cache entry without blocking unrelated requests. Find the two concurrency problems.
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);
}