Fix DASP close deadlock and kit checksum sign display

Use RLock instead of Lock for _close_lock so close() can call
_shutdown() without deadlocking — previously the session never
marked itself closed, causing infinite keepalive sends.

Mask kit checksums to unsigned 32-bit for hex display so negative
i4 values render as proper 8-digit hex (e.g. d3984c51 not -2c67b3af).

Tested against live device at 192.168.1.251 — full handshake,
schema read, and component tree load confirmed working.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-09-11 23:57:19 +03:00
co-authored by Claude Opus 4.6
parent 643bcdc952
commit 1fd6e72b8c
4 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -615,7 +615,7 @@ class DaspSession:
self.num_received = 0
self.num_retries = 0
self._nonce = None
self._close_lock = threading.Lock()
self._close_lock = threading.RLock()
self.on_close = None # callback
# ── Client handshake ────────────────────────────────────────