remove unnecessary async and select!{}

This commit is contained in:
Lambda 2024-05-20 16:49:20 +00:00
parent a60501189d
commit 092315e2cd
2 changed files with 42 additions and 39 deletions

View file

@ -1165,7 +1165,7 @@ impl KeyValueDatabase {
services().sending.start_handler(); services().sending.start_handler();
Self::start_cleanup_task().await; Self::start_cleanup_task();
Ok(()) Ok(())
} }
@ -1182,7 +1182,7 @@ impl KeyValueDatabase {
} }
#[tracing::instrument] #[tracing::instrument]
pub(crate) async fn start_cleanup_task() { pub(crate) fn start_cleanup_task() {
use std::time::{Duration, Instant}; use std::time::{Duration, Instant};
#[cfg(unix)] #[cfg(unix)]

View file

@ -239,45 +239,48 @@ impl Service {
if let Ok(Some(grapevine_room)) = services().admin.get_admin_room() { if let Ok(Some(grapevine_room)) = services().admin.get_admin_room() {
loop { loop {
tokio::select! { let event = receiver
Some(event) = receiver.recv() => { .recv()
let message_content = match event { .await
AdminRoomEvent::SendMessage(content) => content, .expect("admin command channel has been closed");
AdminRoomEvent::ProcessMessage(room_message) => {
self.process_admin_message(room_message).await
}
};
let mutex_state = Arc::clone( let message_content = match event {
services().globals AdminRoomEvent::SendMessage(content) => content,
.roomid_mutex_state AdminRoomEvent::ProcessMessage(room_message) => {
.write() self.process_admin_message(room_message).await
.await
.entry(grapevine_room.clone())
.or_default(),
);
let state_lock = mutex_state.lock().await;
services()
.rooms
.timeline
.build_and_append_pdu(
PduBuilder {
event_type: TimelineEventType::RoomMessage,
content: to_raw_value(&message_content)
.expect("event is valid, we just created it"),
unsigned: None,
state_key: None,
redacts: None,
},
&grapevine_user,
&grapevine_room,
&state_lock,
)
.await.unwrap();
} }
} };
let mutex_state = Arc::clone(
services()
.globals
.roomid_mutex_state
.write()
.await
.entry(grapevine_room.clone())
.or_default(),
);
let state_lock = mutex_state.lock().await;
services()
.rooms
.timeline
.build_and_append_pdu(
PduBuilder {
event_type: TimelineEventType::RoomMessage,
content: to_raw_value(&message_content)
.expect("event is valid, we just created it"),
unsigned: None,
state_key: None,
redacts: None,
},
&grapevine_user,
&grapevine_room,
&state_lock,
)
.await
.unwrap();
} }
} }
} }