startCoroutineUninterceptedOrReturn

Common
JVM
JS
Native
1.3
fun <T> (suspend () -> T).startCoroutineUninterceptedOrReturn(
    completion: Continuation<T>
): Any?

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.

The coroutine is started directly in the invoker's thread without going through the ContinuationInterceptor that might be present in the completion's CoroutineContext. It is the invoker's responsibility to ensure that a proper invocation context is established.

This function is designed to be used from inside of suspendCoroutineUninterceptedOrReturn to resume the execution of the suspended coroutine using a reference to the suspending function.

Common
JVM
JS
Native
1.3
fun <R, T> (suspend R.() -> T).startCoroutineUninterceptedOrReturn(
    receiver: R,
    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.

The coroutine is started directly in the invoker's thread without going through the ContinuationInterceptor that might be present in the completion's CoroutineContext. It is the invoker's responsibility to ensure that a proper invocation context is established.

This function is designed to be used from inside of suspendCoroutineUninterceptedOrReturn to resume the execution of the suspended coroutine using a reference to the suspending function.