1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
/*
* Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
package kotlinx.coroutines.examples
import kotlinx.coroutines.*
import kotlinx.coroutines.future.*
fun main(args: Array<String>) {
fun slow(s: String) = GlobalScope.future {
delay(500L)
s
}
val f = GlobalScope.future {
log("Started f")
val a = slow("A").await()
log("a = $a")
withTimeout(1000L) {
val b = slow("B").await()
log("b = $b")
}
try {
withTimeout(750L) {
val c = slow("C").await()
log("c = $c")
val d = slow("D").await()
log("d = $d")
}
} catch (ex: CancellationException) {
log("timed out with $ex")
}
val e = slow("E").await()
log("e = $e")
"done"
}
log("f.get() = ${f.get()}")
}
|