1
0
Fork 0
mirror of https://gitlab.com/famedly/conduit.git synced 2025-08-16 18:01:35 +00:00

tokio::spawn does not run until completion of joins

This commit is contained in:
mikoto 2024-06-17 14:38:25 +02:00 committed by avdb13
parent 31102a43c5
commit f0ca5253aa
4 changed files with 54 additions and 47 deletions

View file

@ -291,27 +291,29 @@ pub async fn register_route(body: Ruma<register::v3::Request>) -> Result<registe
}
}
let servers = [services().globals.server_name().to_owned()];
let join_by_default = services()
let default_rooms = services()
.globals
.join_by_default()
.expect("validated on db startup");
.default_rooms()
.expect("default rooms should be validated on db startup");
for room_id in join_by_default {
join_room_by_id_helper(
Some(&user_id),
room_id,
Some("All men are equal before fish.".to_owned()),
&servers,
None,
)
.await
.map_err(|e| {
tracing::error!("Failed to join default room: {e}");
let _user_id = user_id.clone();
let servers = [services().globals.server_name().to_owned()];
Error::bad_config("Failed to join default room.")
})?;
}
tokio::spawn(async move {
for room_id in default_rooms {
let _ = join_room_by_id_helper(
Some(&_user_id),
room_id,
Some("All men are equal before fish.".to_owned()),
&servers,
None,
)
.await
.inspect_err(|e| {
tracing::warn!("Failed to join default room: {e}");
});
}
});
}
Ok(register::v3::Response {