Configuration caching - register listener only once per project

To many listeners cause performance issues in Gradle.
This commit is contained in:
Andrey Uskov
2020-08-12 00:38:11 +03:00
parent d2fda2a07c
commit 20371b874a
2 changed files with 5 additions and 4 deletions
@@ -77,9 +77,9 @@ internal class KotlinGradleBuildServices private constructor(
listenerRegistryHolder.listenerRegistry!!.onTaskCompletion(kotlinGradleListenerProvider)
} else {
gradle.addBuildListener(services)
instance = services
log.kotlinDebug(INIT_MESSAGE)
}
instance = services
services.buildStarted()
return services
@@ -113,9 +113,10 @@ internal abstract class KotlinBuildStatsService internal constructor() : BuildAd
log.debug("Instantiated ${KotlinBuildStatsService::class.java}: new instance $instance")
mbs.registerMBean(StandardMBean(newInstance, KotlinBuildStatsMXBean::class.java), beanName)
}
}
if (!isConfigurationCacheAvailable(gradle)) {
gradle.addBuildListener(instance)
if (!isConfigurationCacheAvailable(gradle)) {
gradle.addBuildListener(instance)
}
}
instance
}