plum -> fig

This commit is contained in:
Aanand Prasad 2013-12-20 20:28:24 +00:00
commit 0cafdc9c6c
21 changed files with 33 additions and 33 deletions

32
fig/cli/multiplexer.py Normal file
View file

@ -0,0 +1,32 @@
from threading import Thread
try:
from Queue import Queue, Empty
except ImportError:
from queue import Queue, Empty # Python 3.x
class Multiplexer(object):
def __init__(self, generators):
self.generators = generators
self.queue = Queue()
def loop(self):
self._init_readers()
while True:
try:
yield self.queue.get(timeout=0.1)
except Empty:
pass
def _init_readers(self):
for generator in self.generators:
t = Thread(target=_enqueue_output, args=(generator, self.queue))
t.daemon = True
t.start()
def _enqueue_output(generator, queue):
for item in generator:
queue.put(item)