fix(mpris): bound D-Bus calls with a real deadline and wait for gorou… - #142
Merged
Merged
Conversation
…tines on Close
callWithTimeout read call.Err after obj.Call had already returned, so the
configured timeout never applied. Kodi never replies to the optional
TrackList probe, which froze the listener (and Start) until the player
left the bus; the player never reached the cache. Every call now goes
through CallWithContext with mpris.timeout.
Close used to close the events channel while the listener could still be
inside a handler, panicking on notify ("send on closed channel"). Listener
and heartbeat Stop now wait for their goroutine; Close closes the D-Bus
connection first so in-flight calls fail fast, then closes events last.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F9qZzw2ePsBw6ZeUPnzTDz
Same no-op callWithTimeout as mpris: it read call.Err after obj.Call had already blocked for the reply. Route every call through CallWithContext with the backend timeout. Device1.Connect keeps the pairing timeout since a first connect bonds the device and routinely outlasts the 5s default. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F9qZzw2ePsBw6ZeUPnzTDz
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.
…tines on Close
callWithTimeout read call.Err after obj.Call had already returned, so the configured timeout never applied. Kodi never replies to the optional TrackList probe, which froze the listener (and Start) until the player left the bus; the player never reached the cache. Every call now goes through CallWithContext with mpris.timeout.
Close used to close the events channel while the listener could still be inside a handler, panicking on notify ("send on closed channel"). Listener and heartbeat Stop now wait for their goroutine; Close closes the D-Bus connection first so in-flight calls fail fast, then closes events last.
Claude-Session: https://claude.ai/code/session_01F9qZzw2ePsBw6ZeUPnzTDz