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;