Skip to content

Keep Turing CPU percentage alive after Windows resume: guarded scheduler and sensor diagnostics - #4

Merged
MrSoichi merged 5 commits into
fix/usb-location-binding-resumefrom
fix/cpu-percentage-resume-resilience
Nov 4, 2026
Merged

MrSoichi merged 5 commits into
fix/usb-location-binding-resumefrom
fix/cpu-percentage-resume-resilience

Conversation

@MrSoichi

@MrSoichi MrSoichi commented Nov 4, 2026

Copy link
Copy Markdown

Что увидели на настоящем оборудовании

4 ноября после длительной и короткой гибернации (две подряд) оба USB-дисплея восстановились на правильных физических разъёмах; Turing показывал CPU temperature и GHz, но CPU load % и полоска оставались пустыми. Explorer-only restart вернул оба значка, не восстановил CPU%; Configure -> Save and run полностью перезапустил main.exe и восстановил CPU%. Логи не содержат traceback ошибки потока (frozen GUI).

Узкое исправление (без новых драйверов/USB/трея)

  • Guard каждую периодическую задачу мониторинга от обычных исключений; логировать traceback первой ошибки и раз в 60 секунд при повторении, затем восстановление при успешном тике. KeyboardInterrupt/SystemExit не глотать.
  • Простой CPUPercentage heartbeat каждые 5 минут в log.log (без изменения частоты опроса) — позволяет отличить живую задачу от оборвавшегося потока при следующем resume.
  • Проверка finite и допустимого диапазона CPU%, прежде чем делать int(value) для текста/полоски: NaN, None, infinity и выбросы пропускаются, регистрируются один раз, а после возвращения датчика обновления возобновляются без запуска нового EXE.
  • Не меняем библиотеку COM/USB, UI, LHM/PawnIO, ориентацию или трей.
  • Unit tests: NaN/range guard, transient exception, retry+recovery, log rate-limit, heartbeat, независимость задач, не поглощаем KeyboardInterrupt.

Ограничения и проверка

Изначальное исключение не было записано. Это защитное изменение и диагностический инструмент, не доказательство первопричины. После Windows Runner и отдельной аппаратной гибернации следует проверить log.log на Periodic task CPUPercentage..., отсутствие пропажи CPU% и состояние двух приложений. Не считать проблему трея решённой.

Данный PR целится в испытанную пилотную ветку; не трогать ожидающий upstream PR mathoudebine#1069.

@MrSoichi
MrSoichi merged commit faacc48 into fix/usb-location-binding-resume Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant