Package kotlin.coroutines.experimental.intrinsics

Deprecated support for experimental coroutines, provided for compatibility. It's recommended to migrate to kotlin.coroutines.intrinsics API.

Properties

Common
JVM
JS
Native
1.1

COROUTINE_SUSPENDED

This value is used as a return value of suspendCoroutineOrReturn block argument to state that the execution was suspended and will not return any result immediately.

val COROUTINE_SUSPENDED: Any

Functions

Common
JVM
JS
Native
1.1

createCoroutineUnchecked

Creates a 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).createCoroutineUnchecked(
    completion: Continuation<T>
): Continuation<Unit>

Creates a coroutine with receiver type R and result type T. This function creates a new, fresh instance of suspendable computation every time it is invoked.

fun <R, T> (suspend R.() -> T).createCoroutineUnchecked(
    receiver: R,
    completion: Continuation<T>
): Continuation<Unit>
Common
JVM
JS
Native
1.2

intercepted

Intercept continuation with ContinuationInterceptor.

fun <T> Continuation<T>.intercepted(): Continuation<T>
Common
JVM
JS
Native
1.1

startCoroutineUninterceptedOrReturn

Starts unintercepted coroutine without 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 coroutine completes with result or exception. This function is designed to be used from inside of suspendCoroutineOrReturn to resume the execution of a suspended coroutine using a reference to the suspending function.

fun <T> (suspend () -> T).startCoroutineUninterceptedOrReturn(
    completion: Continuation<T>
): Any?

Starts 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 coroutine completes with result or exception. This function is designed to be used from inside of suspendCoroutineOrReturn to resume the execution of a suspended coroutine using a reference to the suspending function.

fun <R, T> (suspend R.() -> T).startCoroutineUninterceptedOrReturn(
    receiver: R,
    completion: Continuation<T>
): Any?
Common
JVM
JS
Native
1.1

suspendCoroutineOrReturn

Obtains the current continuation instance inside suspend functions and either suspends currently running coroutine or returns result immediately without suspension.

suspend fun <T> suspendCoroutineOrReturn(
    block: (Continuation<T>) -> Any?
): T
Common
JVM
JS
Native
1.2

suspendCoroutineUninterceptedOrReturn

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