shutdown method

void shutdown()

Shutdown the engine and release all resources. Closes every live conversation handle first (legacy + any opened directly).

Implementation

void shutdown() {
  // Copy because close() mutates _handles.
  for (final h in _handles.toList()) {
    h.close();
  }
  _handles.clear();
  _legacyHandle = null;

  // Tear down the shared virtual-session conversation too.
  final vc = _virtualConv;
  if (vc != null) {
    _deleteConversation(vc);
    _virtualConv = null;
    _virtualActiveToken = null;
  }

  if (_engine != null && _engine != nullptr && _bindings != null) {
    _bindings!.litert_lm_engine_delete(_engine!);
    _engine = null;
    gemmaLog('[LiteRtLmFfi] Engine deleted');
  }

  _isInitialized = false;
  _backend = null;
}