Kotlin/kotlinx.coroutines
CoroutinesTimeout non-coroutines jobs dump
Offen
#1.543 geöffnet am 17.09.2019
debugenhancementhelp wanted
Repository-Metriken
- Stars
- (13.749 Sterne)
- PR-Merge-Metriken
- (PR-Metriken ausstehend)
Beschreibung
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()
}
}