From 0dc4b2b53c3cd7074597dd3a61ae9d4f41ccbede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eric=20F=C3=B6rster?= Date: Wed, 27 Feb 2019 22:58:20 +0100 Subject: [PATCH] Fix deadlock in DocumentProvider --- .../completion/latex/DocumentProvider.kt | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/texlab/completion/latex/DocumentProvider.kt b/src/main/kotlin/texlab/completion/latex/DocumentProvider.kt index c497a028..30e1aa4a 100644 --- a/src/main/kotlin/texlab/completion/latex/DocumentProvider.kt +++ b/src/main/kotlin/texlab/completion/latex/DocumentProvider.kt @@ -1,7 +1,5 @@ package texlab.completion.latex -import kotlinx.coroutines.runBlocking -import kotlinx.coroutines.sync.withLock import org.eclipse.lsp4j.CompletionItem import texlab.Document import texlab.Workspace @@ -13,18 +11,16 @@ import java.nio.file.Paths abstract class DocumentProvider(private val workspace: Workspace, private val documentClass: Class, - private val includeExtension: Boolean) : LatexArgumentProvider() where T : Document { + private val includeExtension: Boolean) + : LatexArgumentProvider() where T : Document { override val argumentIndex: Int = 0 - override fun complete(request: CompletionRequest, command: LatexCommandSyntax) - : List = runBlocking { - workspace.withLock { - workspace.documents - .filterIsInstance(documentClass) - .filter { !request.relatedDocuments.contains(it) } - .map { relativize(request.uri, it.uri) } - .map { CompletionItemFactory.createFile(it) } - } + override fun complete(request: CompletionRequest, command: LatexCommandSyntax): List { + return workspace.documents + .filterIsInstance(documentClass) + .filter { !request.relatedDocuments.contains(it) } + .map { relativize(request.uri, it.uri) } + .map { CompletionItemFactory.createFile(it) } } private fun relativize(base: URI, relative: URI): String {