suspendCoroutine

inline suspend fun <T> suspendCoroutine(
    crossinline block: (Continuation<T>) -> Unit
): T
(source)

Platform and version requirements: Kotlin 1.1

Obtains the current continuation instance inside suspend functions and suspends currently running coroutine.

In this function both Continuation.resume and Continuation.resumeWithException can be used either synchronously in the same stack-frame where suspension function is run or asynchronously later in the same thread or from a different thread of execution. Repeated invocation of any resume function produces IllegalStateException.