async def METHOD_NAME(self, send: "ASGISendCallable") -> None:
    while True:
        if self.send_queue:
            message = self.send_queue.popleft()
            if message is None:
                return
            await send(message)
        else:
            await self.send_event.wait()
            self.send_event.clear()