From 48795f6ec3c05769942c68242e43779d90d041c6 Mon Sep 17 00:00:00 2001 From: Smittix Date: Sun, 8 Feb 2026 15:43:06 +0000 Subject: [PATCH] Fix SDR device not released on GSM Spy stop stop_scanner() cleared gsm_spy_active_device without calling release_sdr_device(), so the device stayed claimed in the registry. The scanner thread's finally block then saw None and skipped release. Co-Authored-By: Claude Opus 4.6 --- routes/gsm_spy.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/routes/gsm_spy.py b/routes/gsm_spy.py index 365c870..5e4fc74 100644 --- a/routes/gsm_spy.py +++ b/routes/gsm_spy.py @@ -493,8 +493,10 @@ def stop_scanner(): killed.append('monitor') app_module.gsm_spy_monitor_process = None - # Note: SDR device is released by scanner thread's finally block - # to avoid race condition. Just reset the state variables here. + # Release SDR device from registry + if app_module.gsm_spy_active_device is not None: + from app import release_sdr_device + release_sdr_device(app_module.gsm_spy_active_device) app_module.gsm_spy_active_device = None app_module.gsm_spy_selected_arfcn = None gsm_connected = False