diff --git a/FirebaseAI/Sources/Chat.swift b/FirebaseAI/Sources/Chat.swift index 1f7a7d47b6e..3cca90e6af8 100644 --- a/FirebaseAI/Sources/Chat.swift +++ b/FirebaseAI/Sources/Chat.swift @@ -115,7 +115,7 @@ public final class Chat: Sendable { let request = history + newContent let stream = try model.generateContentStream(request, generationConfig: generationConfig) return AsyncThrowingStream { continuation in - Task { + let task = Task { var aggregatedContent: [ModelContent] = [] do { @@ -142,6 +142,9 @@ public final class Chat: Sendable { self._history.append(aggregated) continuation.finish() } + continuation.onTermination = { _ in + task.cancel() + } } }