Wire Stop button to cancel blocked firmware sweeps
Stop handler now calls cancel_operation() on the device bridge, which sets a threading.Event that interrupts the 2s-timeout serial read loop in send_with_timeout(). InterruptedError is caught separately to prevent falling back to software sweep on cancel. disconnect() uses acquire(timeout=5) with force-close fallback instead of blocking lock acquisition — prevents deadlock when a stuck worker holds the serial lock during shutdown. Add 3 Textual async tests (pytest-asyncio) to verify Stop behavior: firmware sweep stop, software sweep stop, and sweep restart.
This commit is contained in:
parent
972c26b22f
commit
e7e71c47d7
5 changed files with 204 additions and 2 deletions
0
tui/tests/__init__.py
Normal file
0
tui/tests/__init__.py
Normal file
Loading…
Add table
Add a link
Reference in a new issue