package Ġme . qu ench jian . concurrent Ċ Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . as Coroutine Dispatcher Ċ import Ġjava . util . concurrent . Executors Ċ import Ġjava . util . concurrent . ThreadPoolExecutor Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠDefault Scheduler Ġ@ Inject Ġconstructor () Ġ: ĠS chedulers Ġ{ ĊĊĠ Ġprivate Ġval Ġexecutor Ġ= ĠExec utors . new Cached ThreadPool () Ġas ĠThreadPool Executor ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġexecutor . core PoolSize Ġ= Ġ 3 ĊĠĠĠ Ġexecutor . maximum PoolSize Ġ= ĠInt . MAX _ VALUE ĊĠĠĠ Ġexecutor . set KeepAlive Time ( 6 0 , ĠTimeUnit . SECONDS ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġval Ġio Ġ= Ġexecutor . as Coroutine Dispatcher () ĊĠ Ġoverride Ġval Ġui Ġ= ĠDispatch ers . Main Ċ } Ċ