fix: Write-lock individual rooms when building sync for them

This commit is contained in:
timedout 2026-02-23 20:45:44 +00:00 committed by Jacob Taylor
parent 7480cf842c
commit 245cb0e064

View file

@ -65,6 +65,7 @@ pub(super) async fn load_joined_room(
and `join*` functions are used to perform steps in parallel which do not depend on each other.
*/
let insert_lock = services.rooms.timeline.mutex_insert.lock(room_id).await;
let (
account_data,
ephemeral,
@ -82,6 +83,7 @@ pub(super) async fn load_joined_room(
)
.boxed()
.await?;
drop(insert_lock);
if !timeline.is_empty() || !state_events.is_empty() {
trace!(