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) | 
