/* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 - 2 0 1 8 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ // ĠThis Ġfile Ġwas Ġautomatically Ġgenerated Ġfrom Ġcor outines - guide . md Ġby ĠK nit Ġtool . ĠDo Ġnot Ġedit . Ċ package Ġkotlinx . coroutines . guide . super vision 0 1 Ċ Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlin . coroutines .* Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ= Ġrun Blocking Ġ{ ĊĠĠĠ Ġval Ġsupervisor Ġ= ĠSuper visor Job () ĊĠĠĠ Ġwith ( Coroutine Scope ( coroutine Context Ġ+ Ġsupervisor )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġlaunch Ġthe Ġfirst Ġchild Ġ-- Ġits Ġexception Ġis Ġignored Ġfor Ġthis Ġexample Ġ( don 't Ġdo Ġthis Ġin Ġpract ise !) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Child Ġ= Ġlaunch ( Coroutine ExceptionHandler Ġ{ Ġ_, Ġ_ Ġ-> Ġ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" First Ġchild Ġis Ġfailing ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAssertionError (" First Ġchild Ġis Ġcancelled ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġlaunch Ġthe Ġsecond Ġchild ĊĠĠĠĠĠĠĠ Ġval Ġsecond Child Ġ= Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Child . join () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠC ancellation Ġof Ġthe Ġfirst Ġchild Ġis Ġnot Ġpropag ated Ġto Ġthe Ġsecond Ġchild ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" First Ġchild Ġis Ġcancelled : Ġ${ firstChild . is Cancelled }, Ġbut Ġsecond Ġone Ġis Ġstill Ġactive ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( Long . MAX _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBut Ġcancellation Ġof Ġthe Ġsupervisor Ġis Ġpropag ated ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Second Ġchild Ġis Ġcancelled Ġbecause Ġsupervisor Ġis Ġcancelled ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġwait Ġuntil Ġthe Ġfirst Ġchild Ġfails Ġ& Ġcompletes ĊĠĠĠĠĠĠĠ Ġfirst Child . join () ĊĠĠĠĠĠĠĠ Ġprintln (" C ancell ing Ġsupervisor ") ĊĠĠĠĠĠĠĠ Ġsupervisor . cancel () ĊĠĠĠĠĠĠĠ Ġsecond Child . join () ĊĠĠĠ Ġ} Ċ } Ċ