elizarov
01/04/2017, 11:00 AMsuspend fun <K, V> Cache<K, AsyncLazy<V>>.cached(key: K, valueSupplier: suspend () -> V) =
get(key, Callable<AsyncLazy<V>> {
// The following line does not work as of 1.1-M04 yet:
// asyncLazy { valueSupplier() }
// So here is a work-around
AsyncLazyImpl<V>().apply { valueSupplier.startCoroutine(completion = this) }
}).value()