Spec-Zone.ru › Kotlin 1.9

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. Continuation обработки завершения вызывается, когда корутин завершается с результатом или исключением.

Эта функция возвращает непромежуточный continuation. Вызов resume(Unit) запускает корутин немедленно в стеке вызовов вызывающего кода без прохождения через ContinuationInterceptor, который может присутствовать в CoroutineContext завершения. Вызывающий код несёт ответственность за установку надлежащего контекста вызова. Обратите внимание, что завершение этой функции может быть вызвана в произвольном контексте.

Continuation.intercepted может использоваться для получения промежуточного continuation. Вызов resume(Unit) на intercepted continuation гарантирует, что выполнение как корутина, так и завершения происходит в контексте вызова, установленном ContinuationInterceptor.

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

Требования к платформе и версии: 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. Continuation завершения вызывается, когда корутина завершается с результатом или исключением.

Эта функция возвращает неперехваченное продолжение. Вызов resume(Unit) запускает корутину немедленно в стеке вызова вызывающего метода без прохождения через ContinuationInterceptor, который может присутствовать в CoroutineContext завершения. Вызывающий метод несёт ответственность за установку надлежащего контекста вызова. Обратите внимание, что завершение этой функции может быть вызвано в произвольном контексте.

Continuation.intercepted может использоваться для получения перехваченного продолжения. Вызов resume(Unit) на перехваченном продолжении гарантирует, что выполнение как корутины, так и завершения происходит в контексте вызова, установленном ContinuationInterceptor.

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

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