Skip to content

Commit 68360e0

Browse files
authored
Fix missing unbox state in native runBlocking (#2091)
1 parent 4b16e1b commit 68360e0

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

kotlinx-coroutines-core/native/src/Builders.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ private class BlockingCoroutine<T>(
7373
eventLoop?.decrementUseCount()
7474
}
7575
// now return result
76-
val state = state
76+
val state = state.unboxState()
7777
(state as? CompletedExceptionally)?.let { throw it.cause }
7878
state as T
7979
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
* Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
package kotlinx.coroutines
6+
import kotlin.test.*
7+
8+
class RunBlockingTest : TestBase() {
9+
10+
@Test
11+
fun testIncompleteState() {
12+
val handle = runBlocking {
13+
coroutineContext[Job]!!.invokeOnCompletion { }
14+
}
15+
16+
handle.dispose()
17+
}
18+
}

0 commit comments

Comments
 (0)