From d3006d91dc6572258c11f8404a30c88d1bb07233 Mon Sep 17 00:00:00 2001 From: jjangddu Date: Thu, 23 Apr 2026 14:59:07 +0900 Subject: [PATCH] =?UTF-8?q?debug:=20watchdog=20Thread=20=EB=A7=A4=20?= =?UTF-8?q?=EC=B2=B4=ED=81=AC=EB=A7=88=EB=8B=A4=20=EB=A1=9C=EA=B7=B8=20?= =?UTF-8?q?=EA=B8=B0=EB=A1=9D=20(WATCHDOG=5FCHECK)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit watchdog이 실제로 돌고 있는지, 어디서 멈추는지 진단용. 매 5초: WATCHDOG_CHECK silence=Xms connected=true/false interrupt 시: WATCHDOG_THREAD interrupted flag 종료 시: WATCHDOG_THREAD stopped Co-Authored-By: Claude Opus 4.6 (1M context) --- .../example/medilightv2android/ble/BleManager.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt b/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt index 93f9f18..1717bf4 100644 --- a/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt +++ b/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt @@ -364,12 +364,22 @@ class BleManager private constructor(private val context: Context) { debugLogger.info("WATCHDOG_STARTED timeout=${watchdogTimeoutMs}ms") watchdogJob = Thread({ + debugLogger.info("WATCHDOG_THREAD running") while (watchdogRunning) { - try { Thread.sleep(5000) } catch (_: InterruptedException) { break } - if (!watchdogRunning) break - if (!isConnected.value) continue + try { Thread.sleep(5000) } catch (e: InterruptedException) { + debugLogger.warn("WATCHDOG_THREAD interrupted") + break + } + if (!watchdogRunning) { + debugLogger.info("WATCHDOG_THREAD stopped (flag)") + break + } val silenceMs = System.currentTimeMillis() - lastRxTimestamp + debugLogger.info("WATCHDOG_CHECK silence=${silenceMs}ms connected=${isConnected.value}") + + if (!isConnected.value) continue + if (silenceMs > watchdogTimeoutMs) { // 직접 로그 기록 (handler 블로킹 무관) debugLogger.error("WATCHDOG_TIMEOUT silence=${silenceMs}ms — forcing reconnect")