From fd45b74524986e7a5ab71a54cb33e8d215c8bb45 Mon Sep 17 00:00:00 2001 From: Yuval Rakavy Date: Wed, 28 Jul 2021 11:58:21 +0300 Subject: [PATCH] listen will now send the first request immediately and not after first interval --- src/discover.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/discover.rs b/src/discover.rs index d390e80..182dfcc 100644 --- a/src/discover.rs +++ b/src/discover.rs @@ -92,6 +92,7 @@ impl Discovery { let service_name = self.service_name; let response_stream = self.mdns_listener.listen().map(StreamResult::Response); let sender = self.mdns_sender.clone(); + let mut imm_sender = sender.clone(); let interval_stream = async_std::stream::interval(self.send_request_interval) // I don't like the double clone, I can't find a prettier way to do this @@ -103,6 +104,11 @@ impl Discovery { StreamResult::Interval }); + // Send first request immediately + async_std::task::spawn(async move { + let _ = imm_sender.send_request().await; + }); + let stream = select(response_stream, interval_stream); stream .filter_map(|stream_result| {