Basic
Code
package gt.sandbox
import gt.sandbox.internal.output.Out
import kotlinx.coroutines.*
val out = Out.standard()
suspend fun fetchData(s: String) {
out.println("Fetching data... $s")
delay(1000) // This suspends the coroutine for 1 second without blocking the thread
out.println("Data fetched $s")
}
fun main(): Unit = runBlocking {
launch {
fetchData("a-1")
fetchData("a-2")
}
launch {
fetchData("b")
}
launch {
fetchData("c")
}
}
Command to reproduce:
gt.sandbox.checkout.commit 14d257c97de10a4 \
&& cd "${GT_SANDBOX_REPO}" \
&& cmd.run.announce "./gradlew run"
Recorded output of command:
> Task :app:checkKotlinGradlePluginConfigurationErrors SKIPPED
> Task :app:processResources NO-SOURCE
> Task :app:compileKotlin
> Task :app:compileJava NO-SOURCE
> Task :app:classes UP-TO-DATE
> Task :app:run
[2024-06-09T03:40:03.685024Z][ms-elapsed-since-start: 45][tname:main/tid:1] Fetching data... a-1
[2024-06-09T03:40:03.704826Z][ms-elapsed-since-start: 55][tname:main/tid:1] Fetching data... b
[2024-06-09T03:40:03.704975Z][ms-elapsed-since-start: 55][tname:main/tid:1] Fetching data... c
[2024-06-09T03:40:04.708638Z][ms-elapsed-since-start: 1059][tname:main/tid:1] Data fetched a-1
[2024-06-09T03:40:04.709425Z][ms-elapsed-since-start: 1060][tname:main/tid:1] Fetching data... a-2
[2024-06-09T03:40:04.709835Z][ms-elapsed-since-start: 1060][tname:main/tid:1] Data fetched b
[2024-06-09T03:40:04.710102Z][ms-elapsed-since-start: 1061][tname:main/tid:1] Data fetched c
[2024-06-09T03:40:05.715174Z][ms-elapsed-since-start: 2066][tname:main/tid:1] Data fetched a-2
BUILD SUCCESSFUL in 2s
2 actionable tasks: 2 executed
Backlinks