klippy: Improve handling of reactor.run() exceptions

Try to invoke a shutdown on an unhandled exception from reactor.run().
If that fails, try to do a clean exit.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2020-09-06 12:45:27 -04:00
parent 1cdf0d474d
commit c285f8b6cf
1 changed files with 11 additions and 2 deletions

View File

@ -187,8 +187,17 @@ class Printer:
try:
self.reactor.run()
except:
logging.exception("Unhandled exception during run")
return "error_exit"
msg = "Unhandled exception during run"
logging.exception(msg)
# Exception from a reactor callback - try to shutdown
try:
self.reactor.register_callback((lambda e:
self.invoke_shutdown(msg)))
self.reactor.run()
except:
logging.exception("Repeat unhandled exception during run")
# Another exception - try to exit
self.run_result = "error_exit"
# Check restart flags
run_result = self.run_result
try: