generator -> iterator

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
Aanand Prasad 2015-07-22 15:09:24 +01:00
parent 276e369c31
commit 03c3d4c768

View File

@ -13,8 +13,13 @@ STOP = object()
class Multiplexer(object): class Multiplexer(object):
def __init__(self, generators): """
self.generators = generators Create a single iterator from several iterators by running all of them in
parallel and yielding results as they come in.
"""
def __init__(self, iterators):
self.iterators = iterators
self.queue = Queue() self.queue = Queue()
def loop(self): def loop(self):
@ -31,12 +36,12 @@ class Multiplexer(object):
pass pass
def _init_readers(self): def _init_readers(self):
for generator in self.generators: for iterator in self.iterators:
t = Thread(target=_enqueue_output, args=(generator, self.queue)) t = Thread(target=_enqueue_output, args=(iterator, self.queue))
t.daemon = True t.daemon = True
t.start() t.start()
def _enqueue_output(generator, queue): def _enqueue_output(iterator, queue):
for item in generator: for item in iterator:
queue.put(item) queue.put(item)