[Twisted-Python] Stopping and restarting the reactor
bob at redivi.com
Wed Jun 1 19:25:59 EDT 2005
On Jun 1, 2005, at 3:58 PM, Brian Granger wrote:
> I am using twisted's client capabilities in an interactive
> setting. To allow for interactive work, I have wrapped all my
> calls to connectTCP with a class that starts the reactor when a new
> set of connectTCP calls is made. I stop the reactor in the
> clientConnectionLost method of my ClientFactory (when there are no
> more connections).
> The first time I initiate a connectTCP call in my wrapper class
> everything works as expected: the reactor is started, twisted does
> its stuff, and the ClientFactory stops the reactor (giving me back
> interactive controll). BUT, if I the initiate another connectTCP
> call, the reactor starts, but then I get a User Timeout error
> showing up. That is, the second time, no connection is made. My
> ClientFactory again stops the reactor (this time in
> clientConnectionFailed), but then python hangs.
> My question: is the reactor designed to be started/stopped/
> restarted in a single session? If so, are there any considerations
> that I am missing? Why doesn't the connection get made the second
No, it's not. You should start the reactor at the beginning of your
app, and stop it when your app is going to quit. That's it.
twisted-and-foreign-event-loops/> is probably more appropriate for
what you're trying to do.
More information about the Twisted-Python