close method

  1. @override
Future<void> close()
override

Close the embedding model and release resources.

Implementation

@override
Future<void> close() async {
  if (_isClosed) return;

  _isClosed = true;

  // Queued NOW, not after awaiting this model's own load: behind any load
  // already in flight — its own included, so that one is never leaked — and
  // ahead of any load a replacement starts after this call.
  await _onPage(() async {
    if (!_isInitialized) return;
    try {
      await LiteRTWebEmbeddings.dispose();
      if (kDebugMode) {
        edgeAiLog('✅ LiteRT embeddings disposed');
      }
    } catch (e) {
      if (kDebugMode) {
        edgeAiLog('⚠️  Warning: Failed to dispose LiteRT embeddings: $e');
      }
    }
  });

  onClose();
  fireCloseListeners();
}