From: Marcel van der Veldt Date: Wed, 5 Feb 2025 22:16:08 +0000 (+0100) Subject: Fix: race condition in queue controller when flow mode is enabled X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=68868bb17e3df223d801114dd33b66db5be65c1e;p=music-assistant-server.git Fix: race condition in queue controller when flow mode is enabled Fixes weird resume bug after stop --- diff --git a/music_assistant/controllers/player_queues.py b/music_assistant/controllers/player_queues.py index 4e9c5ede..9e2caad5 100644 --- a/music_assistant/controllers/player_queues.py +++ b/music_assistant/controllers/player_queues.py @@ -1733,7 +1733,7 @@ class PlayerQueuesController(CoreController): """Calculate current queue index and current track elapsed time when flow mode is active.""" elapsed_time_queue_total = player.corrected_elapsed_time or 0 if queue.current_index is None and not queue.flow_mode_stream_log: - return None, elapsed_time_queue_total + return queue.current_index, queue.elapsed_time # For each track that has been streamed/buffered to the player, # a playlog entry will be created with the queue item id @@ -1766,7 +1766,10 @@ class PlayerQueuesController(CoreController): track_sec_skipped = 0 track_time = elapsed_time_queue_total + track_sec_skipped - played_time break - + if player.state != PlayerState.PLAYING: + # if the player is not playing, we can't be sure that the elapsed time is correct + # so we just return the queue index and the elapsed time + return queue.current_index, queue.elapsed_time return queue_index, track_time def _parse_player_current_item_id(self, queue_id: str, player: Player) -> str | None: