From 15fb472619f40eeb568108906d8c20a691095374 Mon Sep 17 00:00:00 2001
From: David Hammer <dhammer@mailbox.org>
Date: Wed, 3 Nov 2021 12:38:29 +0100
Subject: [PATCH] Hotfix: don't do parallel queries to not provoke SSL error

---
 src/calng/calcat_utils.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/calng/calcat_utils.py b/src/calng/calcat_utils.py
index 1f6fec91..9d394f04 100644
--- a/src/calng/calcat_utils.py
+++ b/src/calng/calcat_utils.py
@@ -272,6 +272,7 @@ class BaseCalcatFriend:
         self.status_prefix = status_prefix
         self.cached_constants = {}
         self.cached_constants_lock = threading.Lock()
+        self.api_lock = threading.Lock()
 
         if not secrets_fn.is_file():
             self.device.log_status_warn(
@@ -483,7 +484,8 @@ class BaseCalcatFriend:
         # TODO: do we want to use asyncio / "modern" async?
         # TODO: consider moving out of this class, closer to correction device
         def aux():
-            data = self.get_constant_version(constant)
+            with self.api_lock:
+                data = self.get_constant_version(constant)
             callback(constant, data)
 
         thread = threading.Thread(target=aux)
@@ -496,7 +498,8 @@ class BaseCalcatFriend:
 
         # TODO: warn user about all the things that go wrong
         def aux():
-            data = self.get_specific_constant_version(constant)
+            with self.api_lock:
+                data = self.get_specific_constant_version(constant)
             callback(constant, data)
 
         thread = threading.Thread(target=aux)
-- 
GitLab