def __init__(self): self.serverThread = {} try: serverThread = ServerThread() serverThread.start() self.serverThread[0] = serverThread except: logger.log(logger.ERROR, "Failed to start server thread")
def run(self): self.init_logger() # Join the MPS Network logger.log(logger.INFO, "Starting MPS") if not mpsClient.start(self.name, self.params.tcp_port): raise SystemExit app = StcL1Application() # Force garbage collection post-initialization gc.collect() # Signal successful daemon startup self.signal_startup() logger.log(logger.INFO, "Signaled startup, entering main loop") # This is the main loop of the daemon -- it runs forever or until we interrupt the daemon (when running interactively) while True: try: mpsClient.run() except KeyboardInterrupt: break except: traceback.print_exc() # Shutdown MPS logger.log(logger.INFO, "Stopping MPS") app.stop() mpsClient.stop()
def stop(self): logger.log(logger.Info, "Stopping server thread") for thread in self.serverThread: thread.exit()