init method
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();
}