From 3338514a40ab2ecf3f6e1ba9772b3341681e404a Mon Sep 17 00:00:00 2001 From: Sergei Zaychenko Date: Mon, 27 Nov 2023 04:08:39 -0800 Subject: [PATCH] Async event handler combiner now collects all handlers results, before reducing the error for reporting --- src/utils/event-bus/src/event_bus.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/utils/event-bus/src/event_bus.rs b/src/utils/event-bus/src/event_bus.rs index adf77ff36b..ea480746d4 100644 --- a/src/utils/event-bus/src/event_bus.rs +++ b/src/utils/event-bus/src/event_bus.rs @@ -93,7 +93,8 @@ impl EventBus { .map(|handler| handler.handle(event)) .collect(); - futures::future::try_join_all(async_handler_futures).await?; + let results = futures::future::join_all(async_handler_futures).await; + results.into_iter().try_for_each(|res| res)?; Ok(()) } @@ -116,7 +117,8 @@ impl EventBus { .map(|handler| (*handler).call((event_arc.clone(),))) .collect(); - futures::future::try_join_all(closure_handler_futures).await?; + let results = futures::future::join_all(closure_handler_futures).await; + results.into_iter().try_for_each(|res| res)?; } Ok(())