Low-level building blocks for libraries that provide coroutine-based APIs.
This value is used as a return value of suspendCoroutineUninterceptedOrReturn block
argument to state that the execution was suspended and will not return any result immediately.
val COROUTINE_SUSPENDED: Any
Creates unintercepted coroutine without receiver and with result type T. This function creates a new, fresh instance of suspendable computation every time it is invoked.
fun <T> (suspend () -> T).createCoroutineUnintercepted( completion: Continuation<T> ): Continuation<Unit>
Intercepts this continuation with ContinuationInterceptor.
fun <T> Continuation<T>.intercepted(): Continuation<T>
Starts an unintercepted coroutine without a receiver and with result type T and executes it until its first suspension. Returns the result of the coroutine or throws its exception if it does not suspend or COROUTINE_SUSPENDED if it suspends. In the latter case, the completion continuation is invoked when the coroutine completes with a result or an exception.
fun <T> (suspend () -> T).startCoroutineUninterceptedOrReturn( completion: Continuation<T> ): Any?
Starts an unintercepted coroutine with receiver type R and result type T and executes it until its first suspension. Returns the result of the coroutine or throws its exception if it does not suspend or COROUTINE_SUSPENDED if it suspends. In the latter case, the completion continuation is invoked when the coroutine completes with a result or an exception.
fun <R, T> (suspend R.() -> T).startCoroutineUninterceptedOrReturn( receiver: R, completion: Continuation<T> ): Any?
Obtains the current continuation instance inside suspend functions and either suspends currently running coroutine or returns result immediately without suspension.
suspend fun <T> suspendCoroutineUninterceptedOrReturn( block: (Continuation<T>) -> Any? ): T
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines.intrinsics/index.html