from manager3 import Manager, Emission sigA = [] sigB = [] sigC = [] def foo1(): e = Emission() for i in range (10): print "foo1", i e.connect (sigA, sigB) yield e print e.result def foo2(): e = Emission() for i in range (10): print "foo2", i e.connect (sigB, sigC) yield e print e.result def bar(): e = Emission() for i in range (20): if i % 2: m.emit (sigA, "A%d" % i) else: m.emit (sigB, "B%d" % i) yield None m = Manager() m.launch(foo1()) m.launch(foo2()) m.launch(bar()) m.run()