What is the equivalent of SingletonHolder when usi...
# coroutines
m
What is the equivalent of SingletonHolder when using coroutines: https://medium.com/@BladeCoder/kotlin-singletons-with-argument-194ef06edd9e
Copy code
open class SingletonHolder<out T: Any, in A>(creator: (A) -> T) {
    private var creator: ((A) -> T)? = creator
    @Volatile private var instance: T? = null

    fun getInstance(arg: A): T {
        val i = instance
        if (i != null) {
            return i
        }

        return synchronized(this) {
            val i2 = instance
            if (i2 != null) {
                i2
            } else {
                val created = creator!!(arg)
                instance = created
                creator = null
                created
            }
        }
    }
}
g
Maybe you could share some use case