= Mutex()
suspend fun testA() {
mutex.withLock {
testB()
}
}
suspend fun testB() {
mutex.withLock {
}
}
fun main() = runBlocking {
withTimeout(1000) {
testA()
}
}
Он выкинет исключение с не слишком информативным callstack:
Exception in thread "main" kotlinx.coroutines.TimeoutCancellationException: Timed out waiting for 1000 ms
at kotlinx.coroutines.TimeoutKt.TimeoutCancellationException(Timeout.kt:122)
at kotlinx.coroutines.TimeoutCoroutine.run(Timeout.kt:88)
at kotlinx.coroutines.EventLoopBase$DelayedRunnableTask.run(EventLoop.kt:316)
at kotlinx.coroutines.EventLoopBase.processNextEvent(EventLoop.kt:123)
at kotlinx.coroutines.DefaultExecutor.run(DefaultExecutor.kt:61)
at java.lang.Thread.run(Thread.java:748)
Можно ли как то добиться информативного callstack, который бы содержал в себе вызовы функций testA и testB?
В 1.3.30 кажется такие стектрейсы завезли
Обсуждают сегодня