Files
Magisk/app/src/main/java/com/topjohnwu/magisk/utils/CachedValue.kt
T
2019-10-24 04:02:01 -04:00

23 lines
475 B
Kotlin

package com.topjohnwu.magisk.utils
class CachedValue<T>(private val factory: () -> T) : Lazy<T> {
private var _val : T? = null
override val value: T
get() {
val local = _val
return local ?: synchronized(this) {
_val ?: factory().also { _val = it }
}
}
override fun isInitialized() = _val != null
fun invalidate() {
synchronized(this) {
_val = null
}
}
}