diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCache.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCache.kt index efced94ca28..8e7d1d5a063 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCache.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCache.kt @@ -28,12 +28,14 @@ class InlineCache { } inline fun SLRUMap.getOrPut(key: K, defaultValue: () -> V): V { - val value = get(key) - return if (value == null) { - val answer = defaultValue() - put(key, answer) - answer - } else { - value + synchronized(this) { + val value = get(key) + return if (value == null) { + val answer = defaultValue() + put(key, answer) + answer + } else { + value + } } }