From c276e8920b74a1c4db9357a6d6e664c2e494ff48 Mon Sep 17 00:00:00 2001
From: Jan David Mol <mol@astron.nl>
Date: Wed, 13 Oct 2021 20:00:06 +0200
Subject: [PATCH] L2SS-391: Obtain proxies in separate thread because it may
 stall

---
 devices/devices/boot.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/devices/devices/boot.py b/devices/devices/boot.py
index 03969f9cf..5d9540aa5 100644
--- a/devices/devices/boot.py
+++ b/devices/devices/boot.py
@@ -60,6 +60,7 @@ class DevicesInitialiser(Thread):
         self.ignore_unavailable_devices = ignore_unavailable_devices
 
         self.device_names = device_names
+        self.proxy_timeout = proxy_timeout
 
         # setup initial state
         self.progress = 0
@@ -79,16 +80,19 @@ class DevicesInitialiser(Thread):
                 self.devices[name] = DeviceProxy(name)
 
             # set the timeout for all proxies
+            self.set_status("Configuring DeviceProxies")
             for device in self.devices.values():
-                device.set_timeout_millis(int(proxy_timeout * 1000))
-                self.initialise_devices()
+                device.set_timeout_millis(int(self.proxy_timeout * 1000))
+
+            self.set_status("Initialisation started")
+            self.initialise_devices()
 
             self.set_status("Initialisation completed")
         except Exception as e:
             logger.exception("Failed to initialise station")
 
             # add the exception to the status
-            self.set_status(f"{self.status} [{e.__class__.__name__}: {str(e)}]")
+            self.set_status(f"ERROR: {self.status} [{e.__class__.__name__}: {str(e)}]")
 
             # we keep the status stuck at the last thing it tried
 
-- 
GitLab