Serialize bridge command publication and report rejected lifecycle requests

This commit is contained in:
evgeny committed 2026-10-29 13:35:41 +01:00
1 parent 8374c60b0e
commit f731ac340d
3 files changed
+57 -106

No files matched your search

+5 -4
View File
@@ -84,10 +84,11 @@ Payload копируется в byte array; его формат зависит
Перед stop/restart Kotlin сбрасывает controllers и останавливает внешние media workers.
Worker снимает media-привязки, уничтожает instance, снимает standby/UDP-таймеры и уничтожает uasync.
`instance_lite_stop()` ждёт до двух секунд: при timeout отсоединяет поток, поэтому возврат
не гарантирует завершённый cleanup. Без опубликованного instance он возвращается сразу.
Restart пересоздаёт instance и uasync. Дополнительный опрос is_running в bridge до 5с
может увидеть ещё старое работающее ядро; подтверждение нового запуска — SERVICE_STARTED.
`instance_lite_stop()` ждёт полный cleanup и pthread_join, включая startup до публикации instance;
каждые две секунды ожидания пишет предупреждение, поток не отсоединяет. Повторный stop безопасен.
Restart пересоздаёт instance и uasync. Возврат restart/updateSockets подтверждает принятие копии INI,
ошибка очереди возвращается Kotlin; готовность нового запуска подтверждается SERVICE_STARTED.
Fatal signal handlers принадлежат платформе: worker не заменяет их обработчиком с небезопасными locks/JNI/backtrace.
Общие правила освобождения: `../../../doc/service_lifecycle.md`.
## Данные и конфигурация