From f020a6f62b3e37c99559e0a714e3b89c0e13659e Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 21 Oct 2026 17:48:35 +0200 Subject: [PATCH] Clarify CPU indicator polling and pending responses --- lib/u_async_doc.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/u_async_doc.md b/lib/u_async_doc.md index 07706824..8a21f979 100644 --- a/lib/u_async_doc.md +++ b/lib/u_async_doc.md @@ -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, но при скрытом экране валидный ответ не меняет индикатор. +Для индикатора не создаются таймеры ядра. ### Внутренние структуры