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