notifyIsolate method

void notifyIsolate(
  1. String taskId,
  2. DownloadStatus message
)

Notifies the isolate associated with taskId to update its status to message. If the isolate is not found and the message is to start downloading, resumes the task.

Implementation

void notifyIsolate(String taskId, DownloadStatus message) {
  DownloadIsolateInstance? isolate = findIsolateByTaskId(taskId);
  logV('[DownloadIsolatePool] notifyIsolate: ${isolate.toString()} $message');
  if (isolate == null && message == DownloadStatus.DOWNLOADING) {
    final task = findTaskById(taskId);
    if (task == null) return;
    resumeTask(task);
  } else {
    isolate?.task?.status = message;
    isolate?.controlPort?.send(DownloadIsolateMsg(
      IsolateMsgType.task,
      isolate.task,
    ));
  }
}