Ситуация: появилась гонка, зависание или неверное обновление UI при использовании «actor reentrancy». Что вы будете делать?
Что хотят услышать интервьюеры:
План действий: сначала воспроизвести проблему, затем сузить область и только потом менять код.
- Проверить, где используется actor reentrancy и кто владеет состоянием/ресурсом.
- Посмотреть lifecycle, thread/actor context, ошибки и освобождение памяти.
- Добавить лог, тест или regression check, чтобы проблема не вернулась.
Ответ:
Опасность: обновлять UI не на MainActor, игнорировать cancellation, запускать unstructured tasks без lifecycle или путать parallelism и concurrency. Ожидаемый результат: локальный fix, понятный команде и безопасный для релиза.
actor Bank { func transfer() async { await api.call() } }