fc3c4ad883
#KT-26574 Fixed
38 lines
757 B
Kotlin
Vendored
38 lines
757 B
Kotlin
Vendored
@file:JvmMultifileClass
|
|
@file:JvmName("Foo")
|
|
package Hello
|
|
|
|
import kotlin.concurrent.thread
|
|
import kotlin.coroutines.suspendCoroutine
|
|
import kotlin.coroutines.resume
|
|
|
|
@kotlin.jvm.Volatile
|
|
private var result = ""
|
|
@kotlin.jvm.Volatile
|
|
private var callback: Function0<Unit>? = null
|
|
|
|
suspend fun appendAndSuspend(s: String) {
|
|
result += s
|
|
|
|
suspendCoroutine<Unit> { continuation ->
|
|
callback = {
|
|
continuation.resume(Unit)
|
|
}
|
|
}
|
|
}
|
|
|
|
suspend fun main(args: Array<String>) {
|
|
thread(isDaemon = true) {
|
|
while (true) {
|
|
val c = callback
|
|
c?.invoke()
|
|
Thread.sleep(500)
|
|
}
|
|
}
|
|
|
|
appendAndSuspend(args[0])
|
|
appendAndSuspend(args[1])
|
|
println(result)
|
|
callback = null
|
|
}
|