diff options
Diffstat (limited to 'service/pixelated/reactor_manager.py')
-rw-r--r-- | service/pixelated/reactor_manager.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/service/pixelated/reactor_manager.py b/service/pixelated/reactor_manager.py new file mode 100644 index 00000000..01f7f545 --- /dev/null +++ b/service/pixelated/reactor_manager.py @@ -0,0 +1,26 @@ +import signal +import sys +from threading import Thread +from twisted.internet import reactor + + +def signal_handler(signal, frame): + stop_reactor_on_exit() + sys.exit(0) + + +def start_reactor(): + def start_reactor_run(): + reactor.run(False) + + global REACTOR_THREAD + REACTOR_THREAD = Thread(target=start_reactor_run) + REACTOR_THREAD.start() + + +def stop_reactor_on_exit(): + reactor.callFromThread(reactor.stop) + global REACTOR_THREAD + REACTOR_THREAD = None + +signal.signal(signal.SIGINT, signal_handler) |