From 0b22a3c67b81a9af48b7a78f8f907bc25495db2c Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Wed, 23 May 2018 13:54:12 +0300 Subject: [PATCH] Prevent starting multiple daemons from Gradle #KT-24560 fixed --- .../compilerRunner/GradleKotlinCompilerRunner.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt index 2eb2103d84c..3d5288b52d0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt @@ -339,10 +339,12 @@ internal class GradleCompilerRunner(private val project: Project) : KotlinCompil private fun logFinish(strategy: String) = log.logFinish(strategy) override fun getDaemonConnection(environment: GradleCompilerEnvironment): CompileServiceSession? { - val compilerId = CompilerId.makeCompilerId(environment.compilerFullClasspath) - val clientIsAliveFlagFile = getOrCreateClientFlagFile(project) - val sessionIsAliveFlagFile = getOrCreateSessionFlagFile(project) - return newDaemonConnection(compilerId, clientIsAliveFlagFile, sessionIsAliveFlagFile, environment) + synchronized(this::javaClass) { + val compilerId = CompilerId.makeCompilerId(environment.compilerFullClasspath) + val clientIsAliveFlagFile = getOrCreateClientFlagFile(project) + val sessionIsAliveFlagFile = getOrCreateSessionFlagFile(project) + return newDaemonConnection(compilerId, clientIsAliveFlagFile, sessionIsAliveFlagFile, environment) + } } companion object {