ARB download currently performs a blocking socket receive loop in the GUI thread.
Current code
chunk=self.i.sock.recv(min(65536,need))
This happens inside on_arb_download().
Why this is a bug
Large ARB downloads can freeze the GUI until the transfer finishes or times out.
That is bad behaviour for a desktop instrument-control tool, especially if the user expects the interface to stay responsive during waveform transfer.
Fix approach
Move ARB download into a dedicated QThread worker, following the same general pattern already used for ScreenshotWorker.
The GUI thread should only launch the worker and handle completion, logging, and file saving through a signal.
Status
Local fix already implemented in the current v0.2 working copy.
Still needs commit, push, and hardware verification before closing.
### Problem
ARB download currently performs a blocking socket receive loop in the GUI thread.
### Current code
```python
chunk = self.i.sock.recv(min(65536, need))
```
This happens inside `on_arb_download()`.
### Why this is a bug
Large ARB downloads can freeze the GUI until the transfer finishes or times out.
That is bad behaviour for a desktop instrument-control tool, especially if the user expects the interface to stay responsive during waveform transfer.
### Fix approach
Move ARB download into a dedicated `QThread` worker, following the same general pattern already used for `ScreenshotWorker`.
The GUI thread should only launch the worker and handle completion, logging, and file saving through a signal.
### Status
Local fix already implemented in the current v0.2 working copy.
Still needs commit, push, and hardware verification before closing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
ARB download currently performs a blocking socket receive loop in the GUI thread.
Current code
This happens inside
on_arb_download().Why this is a bug
Large ARB downloads can freeze the GUI until the transfer finishes or times out.
That is bad behaviour for a desktop instrument-control tool, especially if the user expects the interface to stay responsive during waveform transfer.
Fix approach
Move ARB download into a dedicated
QThreadworker, following the same general pattern already used forScreenshotWorker.The GUI thread should only launch the worker and handle completion, logging, and file saving through a signal.
Status
Local fix already implemented in the current v0.2 working copy.
Still needs commit, push, and hardware verification before closing.
ARB download blocks the GUI threadto [Bug]: ARB download blocks the GUI thread