Refine dispatching convention

Dispatching happens only via `suspendWithCurrentContinuation` calls
instead of each `resume` call

 #KT-15657 Fixed
This commit is contained in:
Denis Zharkov
2017-01-11 20:22:26 +03:00
parent 0240ab0738
commit d487c1ef0f
6 changed files with 81 additions and 29 deletions
@@ -471,10 +471,16 @@ public class kotlin/jvm/internal/CollectionToArray {
public abstract class kotlin/jvm/internal/CoroutineImpl : kotlin/jvm/internal/RestrictedCoroutineImpl, kotlin/jvm/internal/DispatchedContinuation {
public fun <init> (ILkotlin/coroutines/Continuation;)V
public fun getDispatcher ()Lkotlin/coroutines/ContinuationDispatcher;
public final fun getFacade ()Lkotlin/coroutines/Continuation;
public fun resume (Ljava/lang/Object;)V
public fun resumeWithException (Ljava/lang/Throwable;)V
}
public final class kotlin/jvm/internal/CoroutineIntrinsics {
public static final fun normalizeContinuation (Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
public static final fun wrapContinuationIfNeeded (Lkotlin/coroutines/Continuation;Lkotlin/coroutines/ContinuationDispatcher;)Lkotlin/coroutines/Continuation;
}
public abstract interface class kotlin/jvm/internal/DispatchedContinuation : kotlin/coroutines/Continuation {
public abstract fun getDispatcher ()Lkotlin/coroutines/ContinuationDispatcher;
}