'Add an input task; Reads from the outqueue of the Node'

def add_input(self, prefix, node, next):

    name = ('%s_%s' % (prefix, node.name))
    next_name = ('%s_%s' % (prefix, next.name))
    if (node.name == 'changefeed'):
        self.processes.append(node)
        def f(*args, **kwargs):
            _kwargs = {'timeout': 0.1}
            _kwargs.update(kwargs)
            return node.outqueue.get(*args, **kwargs)
    else:
        f = node.target
    def inner(**kwargs):
        r = f(**kwargs)
        if (r is not None):
            self._enqueue(next_name, r)
        return r
    self.tasks[name] = functools.wraps(f)(inner)
    self.input_tasks.add(name)
