Kotlin/kotlinx.coroutines
CoroutinesTimeout non-coroutines jobs dump
Aberta
#1.543 aberto em 17 de set. de 2019
debugenhancementhelp wanted
Métricas do repositório
- Stars
- (13.749 estrelas)
- Métricas de merge de PR
- (Métricas PR pendentes)
Description
It would be convenient to see non-coroutines incomplete Job instances in coroutines dumps as well. It will improve structured jobs analysis in the case when a Job (or CompletableDeferred) prevents a parent from completion.
The following example test hangs because of a job and a completable deferred, but the coroutines dump doesn't provide enough information, so it's not that easy to backtrace the reason.
class DumpTest {
@get:Rule
val timeout: CoroutinesTimeout = CoroutinesTimeout.seconds(1)
private val parent = Job()
@BeforeTest
fun start() {
Job(parent)
CompletableDeferred<Unit>(parent)
}
@Test
fun test(): Unit = runBlocking(CoroutineName("blocking")) {
parent.complete()
parent.join()
}
}