Restart from the tree no longer hangs for 30 s on disconnect
With a wiresheet open, disconnecting first unsubscribed its components and waited for the reply, which a restarting device never sends, so the editor froze until the request timed out. After restart, reboot, quit or hibernate the session is now closed without asking the device anything; a plain Disconnect still unsubscribes first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -636,7 +636,7 @@ def _invoke_app_action(slot_name):
|
||||
app_state.set_status(f"Invoked '{slot_name}' on device")
|
||||
elif goes_down:
|
||||
host = app_state.device_host
|
||||
do_device_disconnect()
|
||||
do_device_disconnect(device_down=True)
|
||||
app_state.set_status(f"Sent '{slot_name}' to {host} and disconnected")
|
||||
else:
|
||||
app_state.set_status(f"Invoked '{slot_name}' on device")
|
||||
@@ -2996,8 +2996,9 @@ def _load_live_schema(ds):
|
||||
f"Missing kit manifests: {', '.join(missing)}", warn=True)
|
||||
|
||||
|
||||
def do_device_disconnect():
|
||||
"""Disconnects from the live device."""
|
||||
def do_device_disconnect(device_down=False):
|
||||
"""Disconnects from the live device. device_down: it was just told to restart (or
|
||||
stop), so nothing is asked of it on the way out -- it would not answer."""
|
||||
global _cov_poll_id
|
||||
|
||||
if _cov_poll_id is not None:
|
||||
@@ -3006,7 +3007,7 @@ def do_device_disconnect():
|
||||
|
||||
ds = app_state.device_session
|
||||
if ds is not None:
|
||||
ds.disconnect()
|
||||
ds.disconnect(unsubscribe=not device_down)
|
||||
|
||||
app_state.device_session = None
|
||||
app_state.live_mode = False
|
||||
|
||||
Reference in New Issue
Block a user