package Ġdev . po lek . episode tracker . common . coroutines Ċ Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġplatform . darwin .* Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ actual Ġval Ġui : ĠCor outine Context Ġ= ĠMain Queue Dispatcher () Ċ Ċ actual Ġval Ġio : ĠCor outine Context Ġ= ĠMain Queue Dispatcher () Ċ Ċ actual Ġfun Ġrun Blocking ( block : Ġsuspend Ġ() Ġ-> ĠUnit ) Ġ= Ġrun Blocking Ġ{ Ġblock () Ġ} Ċ Ċ @ Opt In ( Internal Cor outines Api :: class ) Ċ internal Ġclass ĠMain Queue Dispatcher : ĠCor outine Dispatcher (), ĠDelay Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdispatch ( context : ĠCor outine Context , Ġblock : ĠRunnable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdispatch _ async ( dispatch _ get _ main _ queue ()) Ġ{ Ġblock . run () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Opt In ( Experimental Cor outines Api :: class ) ĊĠĠĠ Ġoverride Ġfun Ġschedule Resume After Delay ( time Millis : ĠLong , Ġcontinuation : ĠC ancellable Continuation < Unit >) Ġ{ ĊĠĠĠĠĠĠĠ Ġdispatch _ after ( dispatch _ time ( DISPATCH _ TIME _ NOW , Ġtime Millis Ġ* Ġ 1 _ 0 0 0 _ 0 0 0 ), Ġdispatch _ get _ main _ queue ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( continu ation ) Ġ{ Ġresume Un dis patched ( Unit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke On Timeout ( time Millis : ĠLong , Ġblock : ĠRunnable ): ĠDis posable Handle Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhandle Ġ= Ġobject Ġ: ĠDis posable Handle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdisposed Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisposed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdispatch _ after ( dispatch _ time ( DISPATCH _ TIME _ NOW , Ġtime Millis Ġ* Ġ 1 _ 0 0 0 _ 0 0 0 ), Ġdispatch _ get _ main _ queue ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! handle . dis posed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock . run () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġhandle ĊĠĠĠ Ġ} Ċ } Ċ