From 5b5ec2cb04fea54d17aa2f4c2141a0e44fa989cc Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Wed, 14 Oct 2015 12:10:31 +0200 Subject: [PATCH] Make getDaemonConnection synchronized to avoid racing conditions on connection --- .../jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt index 8c6da3b0209..50e752af3b6 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt @@ -128,9 +128,9 @@ public object KotlinCompilerRunner { internal class DaemonConnection(public val daemon: CompileService?) internal object getDaemonConnection { - private var connection: DaemonConnection? = null + private @Volatile var connection: DaemonConnection? = null - operator fun invoke(environment: CompilerEnvironment, messageCollector: MessageCollector): DaemonConnection? { + @Synchronized operator fun invoke(environment: CompilerEnvironment, messageCollector: MessageCollector): DaemonConnection? { if (connection == null) { val libPath = CompilerRunnerUtil.getLibPath(environment.kotlinPaths, messageCollector) val compilerId = CompilerId.makeCompilerId(File(libPath, "kotlin-compiler.jar"))