initialize method
Future<void>
initialize(
- InterpreterCreator factory, {
- PerformanceConfig? performanceConfig,
- bool useIsolateInterpreter = true,
Initializes the pool by calling factory once per slot.
If already initialized, disposes all resources first. IsolateInterpreter is created automatically when no delegate is used, except on macOS where shared-interpreter isolate execution is disabled.
Implementation
Future<void> initialize(
InterpreterCreator factory, {
PerformanceConfig? performanceConfig,
bool useIsolateInterpreter = true,
}) async {
if (_isInitialized) await dispose();
final slots = <(Interpreter, IsolateInterpreter?)>[];
for (int i = 0; i < poolSize; i++) {
final (options, delegate) = InterpreterFactory.create(performanceConfig);
if (delegate != null) _delegates.add(delegate);
final interpreter = await factory(options, delegate);
final isolate = await InterpreterFactory.createIsolateIfNeeded(
interpreter,
delegate,
useIsolateInterpreter: useIsolateInterpreter,
);
_interpreters.add(interpreter);
_isolates.add(isolate);
slots.add((interpreter, isolate));
}
_pool = RoundRobinPool(slots);
_isInitialized = true;
}