From 40ba4c123ae766e33cb56062edb106eabb27c345 Mon Sep 17 00:00:00 2001 From: ATATC Date: Thu, 21 Aug 2025 21:13:07 -0400 Subject: [PATCH] Simplified threading lock uses. (#500) --- leads/comm/prototype.py | 5 +---- leads/dt/odometer.py | 5 +---- leads/logger.py | 5 +---- leads/os.py | 5 +---- leads_comm_serial/identity.py | 5 +---- 5 files changed, 5 insertions(+), 20 deletions(-) diff --git a/leads/comm/prototype.py b/leads/comm/prototype.py index 91f7f585..06d4cb47 100644 --- a/leads/comm/prototype.py +++ b/leads/comm/prototype.py @@ -58,14 +58,11 @@ def _register_process(self, *args, **kwargs) -> None: :param kwargs: kwargs passed to `run()` :exception RuntimeError: duplicated registration """ - self._lock.acquire() if self._main_thread: raise RuntimeError("A service can only run once") - try: + with self._lock: self._main_thread = _Thread(name=f"service{hash(self)}", target=self._run, daemon=True, args=args, kwargs=kwargs) - finally: - self._lock.release() def _parallel_run(self, *args, **kwargs) -> None: """ diff --git a/leads/dt/odometer.py b/leads/dt/odometer.py index 839e4f4c..36d0db24 100644 --- a/leads/dt/odometer.py +++ b/leads/dt/odometer.py @@ -25,8 +25,5 @@ def __init__(self) -> None: @_override def write(self, payload: float) -> None: - self._lock.acquire() - try: + with self._lock: super().write(payload) - finally: - self._lock.release() diff --git a/leads/logger.py b/leads/logger.py index fd2e6ef3..367baf57 100644 --- a/leads/logger.py +++ b/leads/logger.py @@ -58,12 +58,9 @@ def format(self, msg: str, font: int, color: int | None, background: int | None) return f"\033[{font}{f";{color}" if color else ""}{f";{background + 10}" if background else ""}m{msg}\033[0m" def print(self, msg: str, level: int) -> None: - self._lock.acquire() - try: + with self._lock: if self._debug_level <= level: print(msg) - finally: - self._lock.release() def info(self, *msg: str, sep: str = " ", end: str = "\n", f: tuple[int, int | None, int | None] = (REGULAR, None, None)) -> None: diff --git a/leads/os.py b/leads/os.py index f7b654d9..bb82ced5 100644 --- a/leads/os.py +++ b/leads/os.py @@ -21,11 +21,8 @@ def active(self) -> bool: @active.setter def active(self, active: bool) -> None: - self._lock.acquire() - try: + with self._lock: self._active = active - finally: - self._lock.release() _thread_flags: _ThreadFlags = _ThreadFlags() diff --git a/leads_comm_serial/identity.py b/leads_comm_serial/identity.py index 1cef7202..8545399e 100644 --- a/leads_comm_serial/identity.py +++ b/leads_comm_serial/identity.py @@ -58,11 +58,8 @@ def _establish_connection_no_lock(self, serial: _Serial) -> SerialConnection: return self._establish_connection_no_lock(serial) def establish_connection(self, serial: _Serial) -> SerialConnection: - _lock.acquire() - try: + with _lock: return self._establish_connection_no_lock(serial) - finally: - _lock.release() _instances: dict[AutoIdentity, str | None] = {}