On Tue, 21 Sep 2004 23:10:38 -0500, Naoya Maruyama
def test(): d = factory.getRootObject() d.addCallback(lambda object: object.callRemote("echo", "hello network")) d.addCallback(lambda echo: 'server echoed: '+echo) d.addErrback(lambda reason: 'error: '+str(reason.value)) d.addCallback(util.println) d.addCallback(lambda _: reactor.stop()) reactor.run() return
Just call reactor.run() once, at the very end of this script, and only call reactor.stop() once, as a callback to the second test() call. So, in summary, make test() *not* addCallback a reactor.stop, make it _not_ call reactor.run, and change your second test() call to test().addCallback(lambda _: reactor.stop()) and then put reactor.run() after that.
# calls test twice test() test()
-- Twisted | Christopher Armstrong: International Man of Twistery Radix | Release Manager, Twisted Project ---------+ http://radix.twistedmatrix.com