diff --git a/src/calng/calcat_utils.py b/src/calng/calcat_utils.py index 1f6fec910d205ca7d3722cea21250637819f6811..9d394f047a435040f8669ca89d3eb14f8b5bb0f2 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)