You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
More idiomatic and readable example for coroutines debug module readme
* Idiomatically use suspend functions
* Idiomatic parallal decomposition with coroutineContext/async
* No GlobalScope
* Use less vertical space & more concise code to aid readability
* Link to full code file (in tests)
at kotlinx.coroutines.DeferredCoroutine.await$suspendImpl(Builders.common.kt:99)
81
-
at Computation.combineResults(Example.kt:18)
82
-
at Computation$computeValue$1.invokeSuspend(Example.kt:14)
76
+
at ExampleKt.combineResults(Example.kt:11)
77
+
at ExampleKt$computeValue$2.invokeSuspend(Example.kt:7)
78
+
at ExampleKt$main$1$deferred$1.invokeSuspend(Example.kt:25)
83
79
(Coroutine creation stacktrace)
84
80
at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt.createCoroutineUnintercepted(IntrinsicsJvm.kt:116)
85
-
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:23)
86
-
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:109)
87
-
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:160)
88
-
at kotlinx.coroutines.BuildersKt__Builders_commonKt.async(Builders.common.kt:88)
89
-
at kotlinx.coroutines.BuildersKt.async(Unknown Source)
90
-
at kotlinx.coroutines.BuildersKt__Builders_commonKt.async$default(Builders.common.kt:81)
81
+
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:25)
91
82
at kotlinx.coroutines.BuildersKt.async$default(Unknown Source)
92
-
at Computation.computeValue(Example.kt:10)
93
-
at ExampleKt$main$1.invokeSuspend(Example.kt:36)
83
+
at ExampleKt$main$1.invokeSuspend(Example.kt:25)
94
84
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32)
95
-
at kotlinx.coroutines.DispatchedTask$DefaultImpls.run(Dispatched.kt:237)
96
-
at kotlinx.coroutines.DispatchedContinuation.run(Dispatched.kt:81)
97
-
at kotlinx.coroutines.EventLoopBase.processNextEvent(EventLoop.kt:123)
98
-
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:69)
99
-
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:45)
100
-
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
101
-
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:35)
85
+
at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:233)
102
86
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
103
-
at ExampleKt.main(Example.kt:33)
87
+
at ExampleKt.main(Example.kt:23)
88
+
at ExampleKt.main(Example.kt)
104
89
105
90
... More coroutines here ...
106
91
107
92
Dumping only deferred
108
93
"coroutine#2":DeferredCoroutine{Active}, continuation is SUSPENDED at line kotlinx.coroutines.DeferredCoroutine.await$suspendImpl(Builders.common.kt:99)
109
-
"coroutine#3":DeferredCoroutine{Active}, continuation is SUSPENDED at line Computation$computeFirstPart$2.invokeSuspend(Example.kt:23)
110
-
"coroutine#4":DeferredCoroutine{Active}, continuation is SUSPENDED at line Computation$computeSecondPart$2.invokeSuspend(Example.kt:28)
94
+
"coroutine#3":DeferredCoroutine{Active}, continuation is SUSPENDED at line ExampleKt.computeOne(Example.kt:14)
95
+
"coroutine#4":DeferredCoroutine{Active}, continuation is SUSPENDED at line ExampleKt.computeTwo(Example.kt:19)
111
96
```
112
97
113
-
114
98
### Status of the API
115
99
116
100
API is purely experimental and it is not guaranteed that it won't be changed (while it is marked as `@ExperimentalCoroutinesApi`).
0 commit comments