From bd0d180482cde5e2de547f117928ed0ccca198a5 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Thu, 19 Mar 2026 10:43:24 -0400 Subject: [PATCH] fix(status-area): break from loop instead of unwrapping --- cosmic-applet-status-area/src/unique_names.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/cosmic-applet-status-area/src/unique_names.rs b/cosmic-applet-status-area/src/unique_names.rs index cab6483e..c1249547 100644 --- a/cosmic-applet-status-area/src/unique_names.rs +++ b/cosmic-applet-status-area/src/unique_names.rs @@ -5,6 +5,7 @@ // but only tracking unique names, and using tokio executor. use futures::StreamExt; +use futures::stream::FusedStream; use std::{ collections::HashSet, future::{Future, poll_fn}, @@ -36,9 +37,15 @@ impl Inner { /// Process all events so far on `stream`, and update `unique_names`. fn update_if_needed(&mut self) { let mut context = Context::from_waker(&self.waker); - while let Poll::Ready(val) = self.stream.poll_next_unpin(&mut context) { - let val = val.unwrap(); - let args = val.args().unwrap(); + while !self.stream.is_terminated() + && let Poll::Ready(val) = self.stream.poll_next_unpin(&mut context) + { + let Some(val) = val else { + break; + }; + let Ok(args) = val.args() else { + break; + }; match args.name { BusName::Unique(name) => { if args.new_owner.is_some() { @@ -48,7 +55,7 @@ impl Inner { } } BusName::WellKnown(_) => {} - } + }; } } }