Search code examples
multithreadingtwisted.internet

Run Twisted reactor from a Thread


When i run reactor from thread in a synchrone python program, the twisted code is never called.

To resolve this problem, I had to put a sleep.

def _reactor_thread(self):
    if not self.reactor.running:
        self.reactor.run(installSignalHandlers=0)


def _start_thread( self ):

    self.client_thread = Thread( target=self._reactor_thread,
                                 name="mine" )
    self.client_thread.setDaemon(True)
    self.client_thread.start()
    from time import sleep
    sleep( 0.5 )

What is the best way to do it, instead of calling sleep?


Solution

  • We can do this with Crochet. Or with using addSystemEventTrigger.