mirror of
				https://github.com/Klipper3d/klipper.git
				synced 2025-10-31 18:36:09 +01:00 
			
		
		
		
	mathutil: Propagate errors from background_coordinate_descent()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
		| @@ -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(): | ||||
|         try: | ||||
|             res = coordinate_descent(adj_params, params, error_func) | ||||
|         child_conn.send(res) | ||||
|         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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user