From 66f49056f798deabadba3bade37aafb506eec211 Mon Sep 17 00:00:00 2001
From: Philipp Schmidt <philipp.schmidt@xfel.eu>
Date: Mon, 12 Aug 2024 07:44:21 +0200
Subject: [PATCH] manager: Split concurrent instantation into correction
 devices and matchers

---
 src/calng/CalibrationManager.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/calng/CalibrationManager.py b/src/calng/CalibrationManager.py
index 82eb74cd..359b89de 100644
--- a/src/calng/CalibrationManager.py
+++ b/src/calng/CalibrationManager.py
@@ -1354,6 +1354,14 @@ class CalibrationManager(DeviceClientBase, Device):
                 config
             ))
 
+        # Perform instantation on correction devices first.
+        if not all(await gather(*awaitables)):
+            self._set_status('One or more correction devices failed to '
+                             'instantiate')
+            return
+
+        awaitables.clear()
+
         # Instantiate group matchers with optional bridge enabled.
         for row in self.moduleGroups.value:
             group, server, with_bridge, bridge_port, bridge_pattern = row
@@ -1402,9 +1410,10 @@ class CalibrationManager(DeviceClientBase, Device):
                 config
             ))
 
-        # Perform instantation.
+        # Perform instantation on matcher-like devices second.
         if not all(await gather(*awaitables)):
-            self._set_status('One or more devices failed to instantiate')
+            self._set_status('One or more matcher devices failed to '
+                             'instantiate')
             return
 
         # Force managed DAQ settings.
-- 
GitLab