mirror of https://github.com/Desuuuu/klipper.git
mathutil: Propagate errors from background_coordinate_descent()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
72161d0405
commit
139274f0bb
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2018 Kevin O'Connor <kevin@koconnor.net>
|
||||
#
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||
import math, logging, multiprocessing
|
||||
import math, logging, multiprocessing, traceback
|
||||
|
||||
|
||||
######################################################################
|
||||
|
@ -51,8 +51,13 @@ def coordinate_descent(adj_params, params, error_func):
|
|||
def background_coordinate_descent(printer, adj_params, params, error_func):
|
||||
parent_conn, child_conn = multiprocessing.Pipe()
|
||||
def wrapper():
|
||||
res = coordinate_descent(adj_params, params, error_func)
|
||||
child_conn.send(res)
|
||||
try:
|
||||
res = coordinate_descent(adj_params, params, error_func)
|
||||
except:
|
||||
child_conn.send((True, traceback.format_exc()))
|
||||
child_conn.close()
|
||||
return
|
||||
child_conn.send((False, res))
|
||||
child_conn.close()
|
||||
# Start a process to perform the calculation
|
||||
calc_proc = multiprocessing.Process(target=wrapper)
|
||||
|
@ -68,7 +73,9 @@ def background_coordinate_descent(printer, adj_params, params, error_func):
|
|||
gcode.respond_info("Working on calibration...", log=False)
|
||||
eventtime = reactor.pause(eventtime + .1)
|
||||
# Return results
|
||||
res = parent_conn.recv()
|
||||
is_err, res = parent_conn.recv()
|
||||
if is_err:
|
||||
raise Exception("Error in coordinate descent: %s" % (res,))
|
||||
calc_proc.join()
|
||||
parent_conn.close()
|
||||
return res
|
||||
|
|
Loading…
Reference in New Issue