From 945ea5a78af4633513524c6f15c23871bc29e822 Mon Sep 17 00:00:00 2001 From: Jade Ellis Date: Sat, 27 Jun 2026 20:39:50 +0100 Subject: [PATCH] chore: Box large futures --- src/service/rooms/event_handler/fetch_prev.rs | 44 +++++++++++-------- .../event_handler/handle_incoming_pdu.rs | 27 ++++++++---- 2 files changed, 44 insertions(+), 27 deletions(-) diff --git a/src/service/rooms/event_handler/fetch_prev.rs b/src/service/rooms/event_handler/fetch_prev.rs index d8e77cf7c..8f27d1be3 100644 --- a/src/service/rooms/event_handler/fetch_prev.rs +++ b/src/service/rooms/event_handler/fetch_prev.rs @@ -108,25 +108,31 @@ impl super::Service { .await { | Ok((pdu, val)) if pdu.origin_server_ts() >= first_ts_in_room => { - self.upgrade_outlier_to_timeline_pdu(pdu, val, create_event, origin, room_id) - .await - .inspect_err(|e| { - debug_warn!( - total_elapsed=?start.elapsed(), - job_elapsed=?job_start.elapsed(), - task_elapsed=?persist_start.elapsed(), - "Failed to upgrade prev event {event_id}: {e}", - ); - }) - .inspect(|_| { - debug_info!( - total_elapsed=?start.elapsed(), - job_elapsed=?job_start.elapsed(), - task_elapsed=?persist_start.elapsed(), - "Upgraded prev event {event_id}", - ); - }) - .ok(); + Box::pin(self.upgrade_outlier_to_timeline_pdu( + pdu, + val, + create_event, + origin, + room_id, + )) + .await + .inspect_err(|e| { + debug_warn!( + total_elapsed=?start.elapsed(), + job_elapsed=?job_start.elapsed(), + task_elapsed=?persist_start.elapsed(), + "Failed to upgrade prev event {event_id}: {e}", + ); + }) + .inspect(|_| { + debug_info!( + total_elapsed=?start.elapsed(), + job_elapsed=?job_start.elapsed(), + task_elapsed=?persist_start.elapsed(), + "Upgraded prev event {event_id}", + ); + }) + .ok(); }, | Err(e) => debug_warn!( total_elapsed=?start.elapsed(), diff --git a/src/service/rooms/event_handler/handle_incoming_pdu.rs b/src/service/rooms/event_handler/handle_incoming_pdu.rs index 645d4ae9f..0c9974ee8 100644 --- a/src/service/rooms/event_handler/handle_incoming_pdu.rs +++ b/src/service/rooms/event_handler/handle_incoming_pdu.rs @@ -255,16 +255,27 @@ impl super::Service { // These are timeline events debug!("Fetching and persisting any missing prev events"); - self.fetch_prevs(room_id, create_event, &incoming_pdu, origin, first_ts_in_room) - .await - .debug_inspect_err(|e| { - error!("Failed to fetch and persist incoming event's prev_events: {e:?}"); - })?; + Box::pin(self.fetch_prevs( + room_id, + create_event, + &incoming_pdu, + origin, + first_ts_in_room, + )) + .await + .debug_inspect_err(|e| { + error!("Failed to fetch and persist incoming event's prev_events: {e:?}"); + })?; // Done with prev events, now handling the incoming event - let pdu_id = self - .upgrade_outlier_to_timeline_pdu(incoming_pdu, val, create_event, origin, room_id) - .await?; + let pdu_id = Box::pin(self.upgrade_outlier_to_timeline_pdu( + incoming_pdu, + val, + create_event, + origin, + room_id, + )) + .await?; let extremities_count = self .services