[Twisted-Python] Stackless/Twisted integration again
I was interested in Andrews Paper on this subject. I note he recommends running a twisted server as a tasklet. Is there a problem doing this? factory = pb.PBClientFactory reactor.connectTCP('127.0.0.1', 1234, Factory) # Load other tasklets here stackless.tasklet(reactor.iterate)(1) or should I perhaps do this? factory = pb.PBClientFactory reactor.connectTCP('127.0.0.1', 1234, Factory) # Load other tasklets here while 1: stackless.tasklet(reactor.iterate)(1) stackless.schedule() What does the delay in reactor.iterate(delay=0) do? Is there a reactor.run_once() call? I want to make the reactor a tasklet so it is included in the scheduler. Seems to be working but have I opened a can of worms? Thanks Simon -- Linux user #458601 - http://counter.li.org.
On Sun, 06 Apr 2008 10:39:08 +0100, Simon Pickles <sipickles@hotmail.com> wrote:
I was interested in Andrews Paper on this subject. I note he recommends running a twisted server as a tasklet.
Is there a problem doing this?
factory = pb.PBClientFactory reactor.connectTCP('127.0.0.1', 1234, Factory) # Load other tasklets here stackless.tasklet(reactor.iterate)(1)
or should I perhaps do this?
factory = pb.PBClientFactory reactor.connectTCP('127.0.0.1', 1234, Factory) # Load other tasklets here while 1: stackless.tasklet(reactor.iterate)(1) stackless.schedule()
What does the delay in reactor.iterate(delay=0) do? Is there a reactor.run_once() call?
I want to make the reactor a tasklet so it is included in the scheduler. Seems to be working but have I opened a can of worms?
Most or all uses of reactor.iterate() are wrong. I don't think Andrew's paper suggested doing this. Why did you decide to? Jean-Paul
Jean-Paul Calderone wrote:
On Sun, 06 Apr 2008 10:39:08 +0100, Simon Pickles <sipickles@hotmail.com> wrote:
I was interested in Andrews Paper on this subject. I note he recommends running a twisted server as a tasklet.
Is there a problem doing this?
factory = pb.PBClientFactory reactor.connectTCP('127.0.0.1', 1234, Factory) # Load other tasklets here stackless.tasklet(reactor.iterate)(1)
or should I perhaps do this?
factory = pb.PBClientFactory reactor.connectTCP('127.0.0.1', 1234, Factory) # Load other tasklets here while 1: stackless.tasklet(reactor.iterate)(1) stackless.schedule()
What does the delay in reactor.iterate(delay=0) do? Is there a reactor.run_once() call?
I want to make the reactor a tasklet so it is included in the scheduler. Seems to be working but have I opened a can of worms?
Most or all uses of reactor.iterate() are wrong. How should it be used? It looks to be working very successfully so far. The docs say "All pending |IDelayedCall| <http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.IDelayedCall.html>s will be called."
Does this not mean the reactor will process its queue and return? I imagine the delay argument specifies a maximum duration before the return. The docs do not describe this yet.
I don't think Andrew's paper suggested doing this. Why did you decide to?
I want a way to let twisted.reactor yield to the stackless scheduler. Thanks for any advice Simon
Jean-Paul Calderone wrote:
On Sun, 06 Apr 2008 10:39:08 +0100, Simon Pickles <sipickles@hotmail.com> wrote:
I was interested in Andrews Paper on this subject. I note he recommends running a twisted server as a tasklet.
Is there a problem doing this?
factory = pb.PBClientFactory reactor.connectTCP('127.0.0.1', 1234, Factory) # Load other tasklets here stackless.tasklet(reactor.iterate)(1)
or should I perhaps do this?
factory = pb.PBClientFactory reactor.connectTCP('127.0.0.1', 1234, Factory) # Load other tasklets here while 1: stackless.tasklet(reactor.iterate)(1) stackless.schedule()
What does the delay in reactor.iterate(delay=0) do? Is there a reactor.run_once() call?
I want to make the reactor a tasklet so it is included in the scheduler. Seems to be working but have I opened a can of worms?
Most or all uses of reactor.iterate() are wrong. How should it be used? It looks to be working very successfully so far. The docs say "All pending |IDelayedCall| <http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.IDelayedCall.html>s will be called."
Does this not mean the reactor will process its queue and return? I imagine the delay argument specifies a maximum duration before the return. The docs do not describe this yet.
I don't think Andrew's paper suggested doing this. Why did you decide to?
I want a way to let twisted.reactor yield to the stackless scheduler. Thanks for any advice Simon
participants (2)
-
Jean-Paul Calderone -
Simon Pickles