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

This commit is contained in:
timedout 2026-02-23 20:45:44 +00:00
parent cb9786466b
commit 1730cc9ff3
No known key found for this signature in database
GPG key ID: 0FA334385D0B689F

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!(