JVM_IR: synchronized getOrPut for SLRUMap

This commit is contained in:
Georgy Bronnikov
2021-01-27 22:02:50 +03:00
parent 78d62dcb1e
commit be67dacef1
@@ -28,6 +28,7 @@ class InlineCache {
} }
inline fun <K, V : Any> SLRUMap<K, V>.getOrPut(key: K, defaultValue: () -> V): V { inline fun <K, V : Any> SLRUMap<K, V>.getOrPut(key: K, defaultValue: () -> V): V {
synchronized(this) {
val value = get(key) val value = get(key)
return if (value == null) { return if (value == null) {
val answer = defaultValue() val answer = defaultValue()
@@ -37,3 +38,4 @@ inline fun <K, V : Any> SLRUMap<K, V>.getOrPut(key: K, defaultValue: () -> V): V
value value
} }
} }
}