JVM_IR: synchronized getOrPut for SLRUMap
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user