mirror of
https://github.com/natsukagami/youmubot.git
synced 2025-04-19 16:58:55 +00:00
Fix concurrency overwrite
This commit is contained in:
parent
f05afb2b80
commit
61a71b819c
1 changed files with 10 additions and 1 deletions
|
@ -95,7 +95,16 @@ impl youmubot_prelude::Announcer for Announcer {
|
||||||
.collect::<HashMap<_, _>>()
|
.collect::<HashMap<_, _>>()
|
||||||
.await;
|
.await;
|
||||||
// Update users
|
// Update users
|
||||||
*OsuSavedUsers::open(&*d.read().await).borrow_mut()? = data;
|
let db = &*d.read().await;
|
||||||
|
let mut db = OsuSavedUsers::open(db);
|
||||||
|
let mut db = db.borrow_mut()?;
|
||||||
|
data.into_iter()
|
||||||
|
.for_each(|(k, v)| match db.get(&k).map(|v| v.last_update.clone()) {
|
||||||
|
Some(d) if d > v.last_update => (),
|
||||||
|
_ => {
|
||||||
|
db.insert(k, v);
|
||||||
|
}
|
||||||
|
});
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue