init method

Future<void> init({
  1. int isolates = 3,
  2. String? directory,
  3. BaseClient? client,
  4. bool? safeRange,
})

Initialize instance isolates amount of isolates to use isolates should be less than Platform.numberOfProcessors - 3 directory where to save files, without trailing slash /, default to /tmp safeRange used to skip range header if bytes end not found

Implementation

Future<void> init(
    {int isolates = 3,
    String? directory,
    http.BaseClient? client,
    bool? safeRange}) async {
  if (initialized) throw Exception("Already initialized");

  // Must be set before isolates initializing, otherwise default one will be used
  _directory = directory;
  _client = client;
  if (safeRange != null) _safeRange = safeRange;

  await Future.wait(
          [for (var i = 0; i < isolates; i++) _initWorker(index: i)])
      .then(_workers.addAll);

  for (var i = 0; i < isolates; i++) {
    _freeWorkersIndexes.add(i);
  }

  initialized = true;
  _processQueue();
}