From 8e51e70c827c4589d8116122830fb44f5a49158a Mon Sep 17 00:00:00 2001
From: Bjarke Madsen <bjarke@nordu.net>
Date: Mon, 4 Nov 2024 11:49:50 +0100
Subject: [PATCH] ensure process executors are always shutdown

---
 brian_dashboard_manager/templating/helpers.py | 23 +++++++++++--------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/brian_dashboard_manager/templating/helpers.py b/brian_dashboard_manager/templating/helpers.py
index 01d1528..0996d07 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):
-- 
GitLab