From 1731e7929c7d14a9ebcb363338d121abb1474f91 Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Wed, 5 Feb 2025 18:55:55 -0500 Subject: [PATCH] embllm: stop embdding loop on exit This is especially important on CPU, when we may spend many hours embedding a colection of documents. Signed-off-by: Jared Van Bortel --- gpt4all-chat/src/embllm.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gpt4all-chat/src/embllm.cpp b/gpt4all-chat/src/embllm.cpp index 7906a56f..9586f16f 100644 --- a/gpt4all-chat/src/embllm.cpp +++ b/gpt4all-chat/src/embllm.cpp @@ -281,6 +281,9 @@ void EmbeddingLLMWorker::docEmbeddingsRequested(const QVector &c std::vector result; result.resize(chunks.size() * m_model->embeddingSize()); for (int j = 0; j < chunks.size(); j += BATCH_SIZE) { + if (m_stopGenerating) + return; + QMutexLocker locker(&m_mutex); std::vector batchTexts(texts.begin() + j, texts.begin() + std::min(j + BATCH_SIZE, int(texts.size()))); try {