diff --git a/brian_dashboard_manager/templating/helpers.py b/brian_dashboard_manager/templating/helpers.py index 01d1528aef000d486a659d66025ce6ada6084b2d..0996d0759668b302c5a4fd929f3b15ec761ad3b4 100644 --- a/brian_dashboard_manager/templating/helpers.py +++ b/brian_dashboard_manager/templating/helpers.py @@ -977,16 +977,19 @@ def get_dashboard_data( """ with ProcessPoolExecutor(max_workers=NUM_PROCESSES) as executor: - for dash in executor.map( - partial( - get_dashboard_data_single, - datasource=datasource, - tag=tag, - panel_generator=panel_generator, - errors=errors), - data.items() - ): - yield dash + try: + for dash in executor.map( + partial( + get_dashboard_data_single, + datasource=datasource, + tag=tag, + panel_generator=panel_generator, + errors=errors), + data.items() + ): + yield dash + finally: + executor.shutdown(wait=False, cancel_futures=True) def create_aggregate_panel(title, gridpos, targets, datasource):