From c475882727d23a3602db3fecc1d4c72c97c6ee23 Mon Sep 17 00:00:00 2001 From: link2xt Date: Wed, 4 Feb 2026 14:48:49 +0000 Subject: [PATCH] perf: use recv_direct() instead of recv() on the event channel The difference between recv_direct()[1] and recv()[2] is that recv() allocates memory for the future on the heap. Using recv_direct() removes one pointer indirection. [1] https://docs.rs/async-broadcast/0.7.2/async_broadcast/struct.Receiver.html#method.recv_direct [2] https://docs.rs/async-broadcast/0.7.2/async_broadcast/struct.Receiver.html#method.recv --- src/events.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/events.rs b/src/events.rs index 775ae49ab..caac4791e 100644 --- a/src/events.rs +++ b/src/events.rs @@ -71,7 +71,7 @@ impl EventEmitter { /// [`try_recv`]: Self::try_recv pub async fn recv(&self) -> Option { let mut lock = self.0.lock().await; - match lock.recv().await { + match lock.recv_direct().await { Err(async_broadcast::RecvError::Overflowed(n)) => Some(Event { id: 0, typ: EventType::EventChannelOverflow { n },