/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġdev . chr is ban es . ac comp an ist . pic asso Ċ Ċ import Ġjava . util . concurrent . Linked BlockingQueue Ċ import Ġjava . util . concurrent . ThreadPoolExecutor Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjava . util . concurrent . locks . Re entrant Lock Ċ Ċ /** Ċ Ġ* ĠThis Ġis Ġcopied Ġfrom Ġthe Ġjavadoc Ġon Ġ[ ThreadPoolExecutor ]. Ċ Ġ*/ Ċ internal Ġclass ĠSingle Thread Pa usable Executor ( paused : ĠBoolean Ġ= Ġfalse ) Ġ: ĠThreadPool Executor ( ĊĠĠĠĠ 1 , Ġ 1 , Ġ 0 L , ĠTimeUnit . MILLISECONDS , ĠLinked BlockingQueue () Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġis Paused Ġ= Ġpaused ĊĠĠĠ Ġprivate Ġval Ġpause Lock Ġ= ĠRe entrant Lock () ĊĠĠĠ Ġprivate Ġval Ġun paused Ġ= Ġpause Lock . new Condition () ĊĊĠĠĠ Ġoverride Ġfun Ġbefore Execute ( t : ĠThread , Ġr : ĠRunnable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . before Execute ( t , Ġr ) ĊĠĠĠĠĠĠĠ Ġpause Lock . lock () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( is Paused ) Ġun paused . await () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ie : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt . interrupt () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpause Lock . unlock () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpause () Ġ{ ĊĠĠĠĠĠĠĠ Ġpause Lock . lock () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Paused Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpause Lock . unlock () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġresume () Ġ{ ĊĠĠĠĠĠĠĠ Ġpause Lock . lock () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Paused Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun paused . signal All () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpause Lock . unlock () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ