Spec-Zone.ru › Kotlin 1.8

createCoroutineUnintercepted

kotlin-stdlib / kotlin.coroutines.intrinsics / createCoroutineUnintercepted
Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
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.

Повторный вызов любой функции возобновления на полученном продолжении портит состояние машины корутины и может привести к произвольному поведению или исключению.

Требования к платформе и версии: JVM (1.3), JS (1.3), Native (1.3)
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API