From: Maxim Raznatovski Date: Tue, 28 Oct 2025 20:46:54 +0000 (+0100) Subject: Fix buffered generator hang by ensuring None sentinel delivery (#2566) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=17dc9871d68827991ebc5fd0ea4555fb7ecfa855;p=music-assistant-server.git Fix buffered generator hang by ensuring None sentinel delivery (#2566) --- diff --git a/music_assistant/helpers/buffered_generator.py b/music_assistant/helpers/buffered_generator.py index 42902d12..523b4883 100644 --- a/music_assistant/helpers/buffered_generator.py +++ b/music_assistant/helpers/buffered_generator.py @@ -78,8 +78,10 @@ async def buffered( if not generator_consumed: await close_async_generator(generator) # Signal end of stream by putting None - with contextlib.suppress(asyncio.QueueFull): - buffer.put_nowait(None) + # We must wait for space in the queue if needed, otherwise the consumer may + # hang waiting for data that will never come + if not cancelled.is_set(): + await buffer.put(None) # Start the producer task loop = asyncio.get_running_loop()