From 3b0412e8702cd2592d822673e9b397cb52336895 Mon Sep 17 00:00:00 2001 From: eidheim Date: Tue, 11 Jan 2022 13:25:09 +0100 Subject: [PATCH] Fixed deadlock when inserting snippets when using autocomplete keys --- src/source_generic.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/source_generic.cpp b/src/source_generic.cpp index 9ad86a7..c3fafb5 100644 --- a/src/source_generic.cpp +++ b/src/source_generic.cpp @@ -234,15 +234,17 @@ void Source::GenericView::setup_autocomplete() { } } } - LockGuard lock(snippets_mutex); - if(snippets) { - for(auto &snippet : *snippets) { - if(starts_with(snippet.prefix, prefix)) { - autocomplete.rows.emplace_back(snippet.prefix); - autocomplete_insert.emplace_back(snippet.body); - autocomplete_comment.emplace_back(snippet.description); + if(snippets_mutex.try_lock()) { // To avoid deadlock when inserting snippets + if(snippets) { + for(auto &snippet : *snippets) { + if(starts_with(snippet.prefix, prefix)) { + autocomplete.rows.emplace_back(snippet.prefix); + autocomplete_insert.emplace_back(snippet.body); + autocomplete_comment.emplace_back(snippet.description); + } } } + snippets_mutex.unlock(); } } return true;