class ReactorLoop(Thread): def __init__(self, controller): self.pool = NSAutoreleasePool.alloc().init() self.receivehandler = ReceiveHandler(controller) self.service = Service(SERVICENAME, os.path.expanduser('~/Downloads'), self.receivehandler.cb) Thread.__init__(self) def run(self): print 'listen' reactor.run(installSignalHandlers=0) def listen(self): reactor.callFromThread(self.service.listen) def stop(self): log("ReactorLoop stopping") self.service.stop() self.pool.release() log("ReactorLoop stopped")