// ĠFILE : ĠA . kt Ċ // Ġ! LANGUAGE : Ġ- Release Cor outines Ċ // ĠTODO : ĠUn mute Ġwhen Ġautomatic Ġconversion Ġexperimental Ġ< -> Ġrelease Ġwill Ġbe Ġimplemented Ċ // ĠIG NORE _ BACKEND : ĠJS , ĠN ATIVE , ĠJVM _ IR , ĠJS _ IR Ċ Ċ import Ġkotlin . coroutines . experimental .* Ċ import Ġkotlin . coroutines . experimental . intr insics .* Ċ Ċ var Ġcallback : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull Ċ suspend Ġfun Ġdummy (): ĠString Ġ= Ġsuspend Coroutine Ġ{ ĊĠĠĠ Ġcallback Ġ= Ġ{ Ġit . resume (" OK ") Ġ} Ċ } Ċ Ċ // ĠFILE : ĠB . kt Ċ Ċ import Ġkotlin . coroutines .* Ċ import Ġkotlin . coroutines . intr insics .* Ċ Ċ fun Ġbuilder ( x : Ġsuspend Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġx . start Coroutine ( object Ġ: ĠContinu ation < Any ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġcontext : ĠCor outine Context Ġ= ĠEmpty Coroutine Context ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġresume With ( result : ĠResult < Any ?> ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . get OrThrow () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġwhile Ġ( callback Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġcallback !! ĊĠĠĠĠĠĠĠ Ġcallback Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġx () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġvar Ġres Ġ= Ġ" fail " ĊĊĠĠĠ Ġbuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġres Ġ= Ġdummy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġres Ċ } Ċ