Document process lifetime voice ownership and core shutdown prerequisites

This commit is contained in:
evgeny committed 2026-10-29 13:35:19 +01:00
1 parent d0d63c1d4b
commit 268e8794ab
1 file changed
+5 -1
+5 -1
View File
@@ -104,7 +104,11 @@ JNI init регистрирует callbacks/recorder; SQLite открывает
`NativeLib.stop/destroy` снимает media-владельцев на main и ждёт native worker на IO. `HeadlessService`
передаёт остановку в общий `CoreShutdown`, который переживает onDestroy; новый Service ждёт его до init.
Отказ stop повторяется автоматически с backoff 250 мс..30 с, без нового Service/request.
Отмена одного ожидающего Service не отменяет очистку. Диагностика worker не считает живые ресурсы
Отмена одного ожидающего Service не отменяет очистку. AudioRecorderManager запрашивает cleanup вне main,
удерживает AudioRecord/AudioTrack и decoder handles до подтверждённого release, включая ViewModel.onCleared.
NativeLib не разрушает recorder до завершения этих владельцев; во время teardown новый capture запрещён.
Подготовка звонка также ждёт voice cleanup, а отмена звонка не отменяет это ожидание.
Диагностика worker не считает живые ресурсы
frontend утечками: recorder освобождается bridge после остановки ядра.
| Владелец | Ресурсы |