Рецепты

Подключить дочерний Isolate

Передать сообщения порта ошибок дочернего Isolate в менеджер приложения с явным владением обработчиком.

v0.1.0-dev.1Продвинутый уровеньark_error_manager

Подключить дочерний Isolate

Ошибка дочернего Isolate не попадает автоматически в корневую Zone или PlatformDispatcher.onError. Владелец Isolate должен подключить мост порта ошибок.

dart
final Isolate worker = await Isolate.spawn(
  startWorker,
  input,
  paused: true,
);

final IsolateErrorManagerBinding errorBinding =
    IsolateErrorManagerBinding(
  isolate: worker,
  manager: manager,
)..attach();

worker.resume(worker.pauseCapability!);

Создание приостановленного рабочего Isolate не позволяет ему завершиться с ошибкой до подключения обработчика. IsolateErrorManagerBinding указывает ErrorCaptureSource.isolate и передаёт удалённые Error и StackTrace в ту же упорядоченную цепочку обработки.

Отключите IsolateErrorManagerBinding перед передачей владения Isolate, принудительным завершением рабочего Isolate или закрытием менеджера. Один объект должен совместно владеть Isolate и его обработчиком ошибок.

ARKTELOS

Инженерные системы для программного обеспечения, которое обязано выдерживать нагрузку.