Package kotlin.coroutines.intrinsics

Low-level building blocks for libraries that provide coroutine-based APIs.

Properties

Platform and version requirements: JVM (1.3), JS (1.3), Native (1.3)

COROUTINE_SUSPENDED

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

Functions

Platform and version requirements: JVM (1.3), JS (1.3), Native (1.3)

createCoroutineUnintercepted

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>

Creates unintercepted 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).createCoroutineUnintercepted(
    receiver: R, 
    completion: Continuation<T>
): Continuation<Unit>
Platform and version requirements: JVM (1.3), JS (1.3), Native (1.3)

intercepted

Intercepts this continuation with ContinuationInterceptor.

fun <T> Continuation<T>.intercepted(): Continuation<T>
Platform and version requirements: JVM (1.3), JS (1.3), Native (1.3)

startCoroutineUninterceptedOrReturn

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?
Platform and version requirements: JVM (1.3), JS (1.3), Native (1.3)

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

© 2010–2021 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