def pull(self):
        coros = [stage[0] for stage in self.stages]

        # "Prime" the coroutines.
        for coro in coros[1:]:
            coro.next()

        # Begin the pipeline.
        for out in coros[0]:
            msgs = _allmsgs(out)
            for coro in coros[1:]:
                next_msgs = []
                for msg in msgs:
                    out = coro.send(msg)
                    next_msgs.extend(_allmsgs(out))
                msgs = next_msgs
            for msg in msgs:
                yield msg

# Smoke test.
Check total stats are correct when updating member prefix
dataset/ETHPy150Open beetbox/beets/beets/util/pipeline.py/Pipeline.pull--crossover with--dataset/ETHPy150Open SpriteLink/NIPAP/tests/nipaptest.py/TestPoolStatistics.test_stats2