diff --git a/broadcaster/_base.py b/broadcaster/_base.py index c58cb1d..d5b095e 100644 --- a/broadcaster/_base.py +++ b/broadcaster/_base.py @@ -91,11 +91,12 @@ async def subscribe(self, channel: str) -> AsyncIterator["Subscriber"]: yield Subscriber(queue) + finally: self._subscribers[channel].remove(queue) if not self._subscribers.get(channel): del self._subscribers[channel] await self._backend.unsubscribe(channel) - finally: + await queue.put(None)