33 lines
814 B
Python
33 lines
814 B
Python
|
"""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)
|