package Ġco . zs mb . rain bow cake . channels Ċ Ċ import Ġkotlinx . coroutines . Completion Handler Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . Internal Cor outines Api Ċ import Ġkotlinx . coroutines . channels . Producer Scope Ċ import Ġkotlinx . coroutines . channels . Receive Channel Ċ import Ġkotlinx . coroutines . channels . produce Ċ Ċ /** Ċ Ġ* ĠLa unches Ġa Ġnew Ġcoroutine Ġin Ġthe ĠIO Ġcoroutine Ġcontext Ġ( and Ġin Ġ[ Global Scope ]) Ġto Ġproduce Ġa Ġstream Ċ Ġ* Ġof Ġvalues Ġby Ġsending Ġthem Ġto Ġa Ġchannel , Ġand Ġreturns Ġthe Ġcreated Ġ[ Receive Channel ]. Ċ Ġ* Ċ Ġ* ĠFor Ġmore Ġdetails , Ġsee Ġthe Ġ[ Global Scope . produce ] Ġfunction Ġthat Ġthis Ġfunction Ġdeleg ates Ġto . Ċ Ġ*/ Ċ @ Suppress (" EXPERIMENT AL _ API _ USAGE ") Ċ @ Use Experimental ( Internal Cor outines Api :: class ) Ċ fun Ġ< T > Ġproduce In IO Context ( ĊĠĠĠĠĠĠĠ Ġcapacity : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġon Completion : ĠCompletion Handler ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġblock : Ġsuspend ĠProducer Scope < T >. () Ġ-> ĠUnit Ċ ): ĠReceive Channel < T > Ġ{ ĊĠĠĠ Ġreturn ĠGlobal Scope . produce ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= ĠDispatch ers . IO , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapacity Ġ= Ġcapacity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Completion Ġ= Ġon Completion , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock Ġ= Ġblock ĊĠĠĠ Ġ) Ċ } Ċ