initialize method

Future<bool> initialize()
inherited

Initializes the worker isolate and ODBC environment.

  1. Spawns a new isolate via Isolate.spawn.
  2. Loads the ODBC driver in the worker.
  3. Initializes the ODBC environment there.
  4. Returns when the worker is ready to accept requests.

One-time cost is typically ~50–100 ms. Safe to call multiple times; later calls return immediately if already initialized.

Returns true if initialization succeeds, false otherwise.

Implementation

Future<bool> initialize() {
  if (_isInitialized) return Future.value(true);
  final existing = _initialization;
  if (existing != null) {
    return _observeInitialization(existing, _initializationContext!);
  }
  _isShuttingDown = false;
  final generation = _generation;
  late NativeCallContext context;
  final future = NativeCallContext.capture(() {
    context = NativeCallContext.current!;
    return _initializeGeneration(generation);
  });
  _initialization = future;
  _initializationContext = context;
  return _observeInitialization(future, context);
}