Files
kotlin-fork/backend.native/tests/runtime/workers/worker1.kt
T
2017-06-21 11:26:09 +03:00

26 lines
777 B
Kotlin

import konan.worker.*
fun main(args: Array<String>) {
val COUNT = 5
val workers = Array(COUNT, { _ -> startWorker()})
for (attempt in 1 .. 3) {
val futures = Array(workers.size,
{ i -> workers[i].schedule(TransferMode.CHECKED, { "$attempt: Input $i".shallowCopy() })
{ input -> input + " processed" }
})
futures.forEachIndexed { index, future ->
future.consume {
result ->
if ("$attempt: Input $index processed" != result) {
println("Got unexpected $result")
throw Error(result)
}
}
}
}
workers.forEach {
it.requestTermination().consume { _ -> }
}
println("OK")
}