package Ġkotlinx . coroutines . rx Ċ Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlinx . coroutines . rx . internal . R xC or outine Scope Ċ import Ġrx . Comp letable Ċ import Ġkotlin . coroutines . Coroutine Context Ċ import Ġkotlin . coroutines . resume Ċ import Ġkotlin . coroutines . resume With Exception Ċ Ċ suspend Ġfun ĠComp letable . await Complete (): ĠUnit Ġ= Ġsuspend C ancellable Coroutine Ġ{ Ġcont Ġ-> ĊĠĠĠ Ġval Ġsubscription Ġ= Ġsubscribe ( ĊĠĠĠĠĠĠĠ Ġ{ Ġcont . resume ( Unit ) Ġ}, ĊĠĠĠĠĠĠĠ Ġ{ Ġcont . resume With Exception ( it ) Ġ} ĊĠĠĠ Ġ) ĊĠĠĠ Ġcont . invoke On Cancellation Ġ{ Ġsubscription . unsubscribe () Ġ} Ċ } Ċ Ċ fun Ġrx Comp letable ( ĊĠĠĠ Ġcontext : ĠCor outine Context , ĊĠĠĠ Ġblock : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit Ċ ): ĠComp letable Ġ{ ĊĠĠĠ Ġreturn ĠComp letable . from Emitter Ġ{ Ġemitter Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġjob Ġ= ĠR xC or outine Scope . launch ( context , ĠCor outine Start . LA ZY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ Ġblock () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ Ġemitter . on Completed () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠC ancellation Exception Ġ-> Ġ{} Ġ/* Ġignore Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġemitter . onError ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġemitter . set Cancellation Ġ{ Ġjob . cancel () Ġ} ĊĠĠĠĠĠĠĠ Ġjob . start () ĊĠĠĠ Ġ} Ċ }