fix(status-area): don't let one hung SNI item stall the whole tray at startup#1428
Open
BrianHotopp wants to merge 1 commit into
Open
fix(status-area): don't let one hung SNI item stall the whole tray at startup#1428BrianHotopp wants to merge 1 commit into
BrianHotopp wants to merge 1 commit into
Conversation
mmstick
reviewed
May 29, 2026
| // longer blocks the rest. `buffered` (not `buffer_unordered`) preserves the | ||
| // watcher's enumeration order, so initial icon order stays deterministic; | ||
| // the per-item timeout below caps head-of-line blocking, so a single wedged | ||
| // item delays the others by at most that timeout rather than forever. |
Member
There was a problem hiding this comment.
Can this comment be removed? It's better to have summaries of the change in the commit description.
Member
|
You must include the PR template and your commits must declare that they contain LLM-generated code if any part of it was generated. |
06a78d5 to
ffc1a9f
Compare
… startup The watcher seeded registered StatusNotifierItems serially and zbus' default method timeout is unbounded, so one unresponsive SNI service blocked every later seed item; the seed was also `.chain`ed ahead of the live signal streams, so live Registered/Unregistered events were withheld until seeding finished, wedging the whole tray. Seed concurrently with bounded fan-out (`buffered(16)`, which preserves enumeration order), merge with the live streams via `stream_select!`, and cap per-item construction with a 5s timeout so a wedged item yields Event::Error instead of stalling. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ffc1a9f to
15156f8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Serial seeding of already-registered StatusNotifierItems plus zbus' unbounded default method timeout let one hung SNI service block every later seed item. The seed stream was also
.chained ahead of the live signal streams, so no live Registered/Unregistered event was delivered until seeding finished — one wedged item stalled the entire tray subscription. This seeds concurrently with bounded fan-out (buffered(16), which preserves the watcher's enumeration order), merges the seed with the live streams viastream_select!so live registrations flow during seeding, and caps per-item construction with a 5s timeout so a wedged item yieldsEvent::Errorinstead of stalling.Test plan
cargo build -p cosmic-applet-status-areais green.