package Ġcom . same lo dy . samples . kotlin . coroutines Ċ Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlinx . coroutines . channels .* Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġfruit Array Ġ= ĠarrayOf (" Apple ", Ġ" Ban ana ", Ġ" P ear ", Ġ" G rap es ", Ġ" Str aw berry ") ĊĠĠĠ Ġval Ġkotlin Channel Ġ= ĠChannel < String >() ĊĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( fruit Ġin Ġfruit Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠConditional Ġclose ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fruit Ġ== Ġ" G rap es ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSignal Ġthat Ġclosure Ġof Ġchannel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Channel . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Channel . send ( fruit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrepeat ( fruit Array . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfruit Ġ= Ġkotlin Channel . receive () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( fruit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Exception Ġraised : Ġ${ e . java Class . simple Name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln (" Done !") ĊĠĠĠ Ġ} Ċ }