From: Marcel van der Veldt Date: Tue, 18 Feb 2025 21:14:44 +0000 (+0100) Subject: Chore: speedup AirPlay stop X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=64df675586c5ddc94e5d2344004fe492ea431574;p=music-assistant-server.git Chore: speedup AirPlay stop --- diff --git a/music_assistant/providers/airplay/player.py b/music_assistant/providers/airplay/player.py index ee09e1ef..d13f7d72 100644 --- a/music_assistant/providers/airplay/player.py +++ b/music_assistant/providers/airplay/player.py @@ -33,13 +33,12 @@ class AirPlayPlayer: async def cmd_stop(self, update_state: bool = True) -> None: """Send STOP command to player.""" - async with self._lock: - if self.raop_stream: - # forward stop to the entire stream session - await self.raop_stream.session.stop() - if update_state and (mass_player := self.mass.players.get(self.player_id)): - mass_player.state = PlayerState.IDLE - self.mass.players.update(mass_player.player_id) + if self.raop_stream: + # forward stop to the entire stream session + await self.raop_stream.session.stop() + if update_state and (mass_player := self.mass.players.get(self.player_id)): + mass_player.state = PlayerState.IDLE + self.mass.players.update(mass_player.player_id) async def cmd_play(self) -> None: """Send PLAY (unpause) command to player.""" diff --git a/music_assistant/providers/airplay/raop.py b/music_assistant/providers/airplay/raop.py index 7c67a8c6..a0183eb6 100644 --- a/music_assistant/providers/airplay/raop.py +++ b/music_assistant/providers/airplay/raop.py @@ -140,9 +140,8 @@ class RaopStreamSession: return assert airplay_player.raop_stream assert airplay_player.raop_stream.session == self - async with self._lock: - self._sync_clients.remove(airplay_player) - await airplay_player.raop_stream.stop() + self._sync_clients.remove(airplay_player) + await airplay_player.raop_stream.stop() airplay_player.raop_stream = None async def add_client(self, airplay_player: AirPlayPlayer) -> None: @@ -296,7 +295,7 @@ class RaopStream: await self.send_cli_command("ACTION=STOP") self._stopped = True with suppress(asyncio.TimeoutError): - await self._cliraop_proc.wait_with_timeout(5) + await self._cliraop_proc.wait_with_timeout(2) if self._stderr_reader_task and not self._stderr_reader_task.done(): self._stderr_reader_task.cancel() if self._cliraop_proc.proc and not self._cliraop_proc.closed: