package Ġcom . ray w ender lich . channels Ċ Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . Obsolete Cor outines Api Ċ import Ġkotlinx . coroutines . channels . consume Each Ċ import Ġkotlinx . coroutines . channels . produce Ċ import Ġkotlinx . coroutines . run Blocking Ċ Ċ @ Obsolete Cor outines Api Ċ @ Experimental Cor outines Api Ċ fun Ġmain () Ġ{ ĊĊĠ Ġval Ġfruit Array Ġ= ĠarrayOf (" Apple ", Ġ" Ban ana ", Ġ" P ear ", Ġ" G rap es ", Ġ" Str aw berry ") ĊĊĠ Ġfun Ġproduce F ru its () Ġ= ĠGlobal Scope . produce < String > Ġ{ ĊĠĠĠ Ġfor Ġ( fruit Ġin Ġfruit Array ) Ġ{ ĊĠĠĠĠĠ Ġsend ( fruit ) ĊĊĠĠĠĠĠ Ġ// ĠConditional Ġclose ĊĠĠĠĠĠ Ġif Ġ( fruit Ġ== Ġ" P ear ") Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSignal Ġthat Ġclosure Ġof Ġchannel ĊĠĠĠĠĠĠĠ Ġclose () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġrun Blocking Ġ{ ĊĠĠĠ Ġval Ġfru its Ġ= Ġproduce F ru its () ĊĠĠĠ Ġfru its . consume Each Ġ{ Ġprintln ( it ) Ġ} ĊĠĠĠ Ġprintln (" Done !") ĊĠ Ġ} Ċ }