diff options
Diffstat (limited to 'klippy/extras/homing.py')
-rw-r--r-- | klippy/extras/homing.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/klippy/extras/homing.py b/klippy/extras/homing.py index f6dead84..1d7e1948 100644 --- a/klippy/extras/homing.py +++ b/klippy/extras/homing.py @@ -13,8 +13,13 @@ ENDSTOP_SAMPLE_COUNT = 4 def multi_complete(printer, completions): if len(completions) == 1: return completions[0] - cb = (lambda e: all([c.wait() for c in completions])) - return printer.get_reactor().register_callback(cb) + # Build completion that waits for all completions + reactor = printer.get_reactor() + cp = reactor.register_callback(lambda e: [c.wait() for c in completions]) + # If any completion indicates an error, then exit main completion early + for c in completions: + reactor.register_callback(lambda e: cp.complete(1) if c.wait() else 0) + return cp # Implementation of homing/probing moves class HomingMove: |