Python повторяемая очередь

Мне нужно знать, когда очередь закрыта, и у меня не будет больше элементов, чтобы я мог закончить итерацию.

Я сделал это, поместив дозорного в очередь:

from Queue import Queue

class IterableQueue(Queue): 

    _sentinel = object()

    def __iter__(self):
        return self

    def close(self):
        self.put(self._sentinel)

    def next(self):
        item = self.get()
        if item is self._sentinel:
            raise StopIteration
        else:
            return item

Учитывая, что это очень распространенное использование для очереди, нет ли какой-либо встроенной реализации?

Ответы на вопрос(2)

Ваш ответ на вопрос