¿Pueden `SendChannel.offer`,` CompletableDefernetworking.complete` y similares llamarse corutinas externas?

CompletableDefernetworking documentation de CompletableDefernetworking dice

Todas las funciones en esta interfaz y en todas las interfaces derivadas de ella son seguras para subprocesss y se pueden invocar de forma segura desde corutinas concurrentes sin synchronization externa.

¿Es seguro llamar a estas funciones fuera de cualquier coroutine?

Para SendChannel<E> , la offer y el close no se suspend y, por lo tanto, se pueden llamar sintácticamente fuera de las corutinas, ¿pero es realmente seguro hacerlo?

Si se necesita una coroutine, ¿cuál es la forma más económica de comenzar una: launch(Unconfined) ?

Es seguro llamar a offer y close desde cualquier lugar. Eso es lo que la documentation significa decir con la frase "son seguros para subprocesss".

Una de las razones por las que estos methods están incluidos en las API de canal es para permitir la integración de corutinas con el mundo regular que no se basa en rutinas que se basa en varias devoluciones de llamada y controlleres de events. Puede ver el ejemplo real de dicha integración en esta guía sobre la progtwigción de la interfaz de usuario con corrutinas .

  • Oyente dentro del productor
  • Kotlin coroutine traga exception
  • Kotlin coroutines unit testing usando mockito
  • Spring 5 and Kotlin 1.1 Coroutines: Type rx.Scheduler no presente
  • ¿Se pueden usar corotines Kotlin "experimentales" en la producción?
  • Kotlin Coroutines en un service de Android
  • Kotlin coroutines usa produce y mockito para burlarse del trabajo de producción
  • Kotlin coroutines en Android: ¿Por qué usar bg () de Anko en lugar de async ()?
  • ¿Por qué es imposible utilizar las references de methods para las funciones `suspender` en Kotlin?
  • No se puede detectar el lanzamiento de exception después de que se cancela Kotlin coroutine
  • Cómo escribir una corutina recursiva en kotlin