Clarify CPU indicator polling and pending responses

This commit is contained in:
evgeny committed 2026-10-21 17:48:35 +02:00
1 parent d23a96a08e
commit f020a6f62b
1 file changed
+7 -3
+7 -3
View File
@@ -225,9 +225,13 @@ CPU измеряется с первого `uasync_poll` или `uasync_get_load
GUI показывает округлённое секундное среднее 0–100% поверх полосы с градиентом зелёный → жёлтый → красный:
desktop — рядом с заголовком каналов, Android — рядом с версией в списке групп.
Запрос `chat_core_collect_cpu_load_trampoline` возвращает короткое событие `CHAT_EVT_CPU_LOAD` (`valid:1, average_percent:1`).
GUI опрашивает ядро каждые 333 мс, не более одного незавершённого запроса. Android опрашивает только пока экран списка групп RESUMED;
при паузе или уходе с экрана coroutine отменяется, фоновых запросов и таймеров ядра для индикатора нет.
Запрос `chat_core_collect_cpu_load_trampoline` выполняется в потоке ядра и возвращает событие `CHAT_EVT_CPU_LOAD`:
два байта `[valid][average_percent]`, где среднее округлено до целого процента. При `valid=0` GUI показывает 0%.
Desktop-таймер проверяет готовность ядра каждые 333 мс; Android отправляет запросы с паузой 333 мс,
только пока экран списка групп RESUMED. В обоих случаях допускается не более одного незавершённого запроса.
При паузе или уходе с Android-экрана coroutine опроса отменяется и новые запросы не отправляются.
Уже опубликованный запрос не отменяется: ответ снимает pending, но при скрытом экране валидный ответ не меняет индикатор.
Для индикатора не создаются таймеры ядра.
### Внутренние структуры