diff options
Diffstat (limited to 'runners/gradle-plugin')
-rw-r--r-- | runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaTask.kt | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaTask.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaTask.kt index a654f9d5..52e7d3df 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaTask.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaTask.kt @@ -89,7 +89,14 @@ abstract class AbstractDokkaTask : DefaultTask() { internal open fun generateDocumentation() { DokkaBootstrap(runtime, DokkaBootstrapImpl::class).apply { configure(buildDokkaConfiguration().toJsonString(), createProxyLogger()) - generate() + /** + * Run in a new thread to avoid memory leaks that are related to ThreadLocal (that keeps `URLCLassLoader`) + * Currently, all `ThreadLocal`s leaking are in the compiler/IDE codebase. + */ + Thread { generate() }.apply { + start() + join() + } } } |