From 181a30b812296ac0dc5738ee5222104f9dc97065 Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Wed, 11 May 2022 18:51:25 +0200 Subject: Adding an ExitSignalHandler class. --- src/argaze/utils/MiscFeatures.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/argaze/utils/MiscFeatures.py b/src/argaze/utils/MiscFeatures.py index 9c62d89..56a77bb 100644 --- a/src/argaze/utils/MiscFeatures.py +++ b/src/argaze/utils/MiscFeatures.py @@ -21,3 +21,25 @@ def printProgressBar (iteration:int, total:int, prefix:str = '', suffix:str = '' # Print New Line on Complete if iteration == total: print() + +# Handle exit event +class ExitSignalHandler(): + + def __init__(self): + + import signal + import threading + + global __exit_event + global __on_exit_signal + + __exit_event = threading.Event() + + def __on_exit_signal(signo, _frame): + __exit_event.set() + + for sig in ('TERM', 'HUP', 'INT'): + signal.signal(getattr(signal, 'SIG'+sig), __on_exit_signal) + + def status(self): + return __exit_event.is_set() \ No newline at end of file -- cgit v1.1