createCoroutineUnintercepted
fun <T> (suspend () -> T).createCoroutineUnintercepted( completion: Continuation<T> ): Continuation<Unit>
Создаёт неперехватываемую корутину без получателя и с типом результата T. Эта функция каждый раз при вызове создаёт новый экземпляр приостанавливаемого вычисления.
Для запуска созданной корутины вызовите resume(Unit) на возвращённом экземпляре Continuation. Функция completion вызывается, когда корутина завершается с результатом или исключением.
Эта функция возвращает неперехватываемую продолжение. Вызов resume(Unit) запускает корутину немедленно в стеке вызова вызывающего кода без прохождения через ContinuationInterceptor, который может присутствовать в CoroutineContext завершения. Вызывающая сторона несёт ответственность за обеспечение надлежащей контекста вызова. Обратите внимание, что completion этой функции может быть вызван в произвольном контексте.
Continuation.intercepted может быть использована для получения перехватываемого продолжения. Вызов resume(Unit) на перехваченном продолжении гарантирует, что выполнение как корутины, так и completion происходит в контексте вызова, установленной ContinuationInterceptor.
Повторный вызов любой функции возобновления на полученном продолжении портит состояние машины корутины и может привести к произвольному поведению или исключению.
fun <R, T> (suspend R.() -> T).createCoroutineUnintercepted( receiver: R, completion: Continuation<T> ): Continuation<Unit>
Создаёт неперехватываемую корутину с получателем типа R и типом результата T. Эта функция каждый раз при вызове создаёт новый экземпляр приостанавливаемого вычисления.
Для запуска созданной корутины вызовите resume(Unit) на возвращённом экземпляре Continuation. Функция completion вызывается, когда корутина завершается с результатом или исключением.
Эта функция возвращает неперехватываемую продолжение. Вызов resume(Unit) запускает корутину немедленно в стеке вызова вызывающего кода без прохождения через ContinuationInterceptor, который может присутствовать в CoroutineContext завершения. Вызывающая сторона несёт ответственность за обеспечение надлежащей контекста вызова. Обратите внимание, что completion этой функции может быть вызван в произвольном контексте.
Continuation.intercepted может быть использована для получения перехватываемого продолжения. Вызов resume(Unit) на перехваченном продолжении гарантирует, что выполнение как корутины, так и completion происходит в контексте вызова, установленной ContinuationInterceptor.
Повторный вызов любой функции возобновления на полученном продолжении портит состояние машины корутины и может привести к произвольному поведению или исключению.
© 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/create-coroutine-unintercepted.html