// TARGET_BACKEND: NATIVE // FILE: 1.kt val O = if (true) "O" else "F" // to avoid const init val K = if (true) "K" else "A" // to avoid const init // FILE: main.kt import kotlin.native.concurrent.* import kotlin.concurrent.AtomicInt val sem = AtomicInt(0) fun box() : String { val w1 = Worker.start() val w2 = Worker.start() val f1 = w1.execute( mode = TransferMode.SAFE, { }, { sem.incrementAndGet(); while (sem.value != 3) {} O } ) val f2 = w2.execute( mode = TransferMode.SAFE, { }, { sem.incrementAndGet(); while (sem.value != 3) {} K } ) while (sem.value != 2) {} sem.value = 3 val result = f1.result + f2.result w1.requestTermination().result w2.requestTermination().result return result }