"""A thread for a control channel.""" from threading import Thread from tornado.ioloop import IOLoop CONTROL_THREAD_NAME = "Control" class ControlThread(Thread): """A thread for a control channel.""" def __init__(self, **kwargs): """Initialize the thread.""" Thread.__init__(self, name=CONTROL_THREAD_NAME, **kwargs) self.io_loop = IOLoop(make_current=False) self.pydev_do_not_trace = True self.is_pydev_daemon_thread = True def run(self): """Run the thread.""" self.name = CONTROL_THREAD_NAME try: self.io_loop.start() finally: self.io_loop.close() def stop(self): """Stop the thread. This method is threadsafe. """ self.io_loop.add_callback(self.io_loop.stop)