Python seems to intentionally make aborting threads nigh impossible. You're probably way better off doing something akin to this:
def stuff2(): time.sleep(4) if reactor.running: print "stuff2 finished" else: print "Don't need to stuff2" Also iirc in Twisted you need to use callFromThread on reactor methods rather than calling the reactor directly. On Fri, 29 May 2009 14:22:43 +0200, Thomas Jakobsen <thomas.jakob...@alexandra.dk> wrote: > Hi > > It seems that things being deferredToThread continue to run even > though reactor.stop() is called. > > Output from the example below is: > > stuff1 finished; stopping reactor > stuff2 finished > > Is there a way to abort the remaining execution of stuff2 in this > case? It would be handy if, say, some exception happens in in stuff1 > that causes the execution of the remaining stuff2 to be meaningless. > > Kind regards, > Thomas > > --------------------------------------------- > > from twisted.internet.threads import deferToThread > from twisted.internet import reactor > > def stuff1(): > time.sleep(2) > print "stuff1 finished; stopping reactor" > reactor.stop() > > def stuff2(): > time.sleep(4) > print "stuff2 finished" > > d1 = deferToThread(stuff1) > d2 = deferToThread(stuff2) > > reactor.run() > > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python