aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--klippy/klippy.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/klippy/klippy.py b/klippy/klippy.py
index 6cac8099..3d090886 100644
--- a/klippy/klippy.py
+++ b/klippy/klippy.py
@@ -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: